🧑🏫
Vimで現在のファイルのgit diffを確認する
この記事はVim駅伝の2023-12-15の記事です。
前回の記事はAmaさんのVimで、位置を指定できる winline()
を作成するです。
vim-jp slackの#tech-spartan
というチャンネルで話題になり、書いてみました。
Git管理下のファイルを開き、適当な変更を加えて以下のコマンドを入力するとdiffを見ることができます。
new | r !git diff #
-
new
- 空のファイルで新しいウィンドウを開く
-
r !git diff #
「newしてgit diffをreadする」という動作をほぼそのままコマンドにした形になっています。spartanも覚えやすいですね。
頻繁に使うのであれば、コマンド化して、もうすこし整形すると見やすいと思います。
こんな感じはどうでしょうか。
command! GitDiff new
\ | setlocal buftype=nofile bufhidden=delete noswapfile
\ | setfiletype gitcommit
\ | execute 'read !git diff #'
\ | normal! gg
-
new
- 空のファイルで新しいウィンドウを開く
-
setlocal buftype=nofile bufhidden=delete noswapfile
- 編集対象としないことを設定
-
special-buffers
のdirectory
を参考にした
-
setfiletype gitcommit
- ファイルタイプをgitcommitに設定(ハイライトのため)
-
execute 'read !git diff #'
- 前掲の
read !git diff #
と同じだが、あとにnormal!
コマンドを続ける必要があるため、execute
で実行する
- 前掲の
-
normal! gg
- カーソルを先頭へ復帰
また、new
のかわりにenew
やtabnew
を使ったり、git diff
のオプションを追加したりして改造できます。お試しあれ。
なお、denops環境ではgin.vimの使用がおすすめです。
Discussion