書き置き。

ほぼ勉強の記録みたいなもんです。

vimからgit操作をする vim-fugitive.vim が便利

最近、仕事や、それ以外にもdotfiles管理等で バージョン管理にgitを使うことが多くなった。(既にSubversionは過去のプロジェクトのソースを見るためくらいにしか使っていない。)eclipseで開発して git 操作はターミナルからコマンドを叩くということをやっていた。しかしvimで開発するとなると、vimには豊富なプラグインがある。(eclipse にも EGitというpluginがあってhistoryとdiffを見るのには便利に使っていた。)。今、旬なgitのプラグインともなれば数種類あるようだけど、その中で見つけたのが vim-fugitive.vim というプラグイン

単にvimからgit のコマンドを実行したいだけならpluginを入れなくともできるが、vim-fugitive.vim を入れると、:Gstatus の結果ウィンドで '-' キーを押すと、git add / git reset 状態を切り替えてくれる。たくさんのファイルを修正してそのファイルが様々なディレクトリに散らばっていると(さらにgit add . で全ファイルをindexに追加できない状況だと)ファイル1つずつ git add するのが結構面倒だったりするので、これは非常にありがたい。

giff は :Gdiff で、vimdiff を使って開かれるので ピンポイントで修正した部分だけではなくファイルのどの部分を修正したのか、前後関係が見やすい。

:Gblam コマンドは、いつ誰がどのコミットで追加/編集したものを見られる。ターミナルから git blame コマンドを実行すると、ソースコードのカラーリングがされずに読みにくかったのも、このプラグインのお陰で見やすくなった。実行すると、ウィンドウ分割され、左にblameの情報、右にカラーリングされたコードが表示され、片方のウィンドウをスクロールするともう一方も同時にスクロールされる。

Githubのreadmeを読めば大体わかるし、VIM CASTS.org にあるscreencastでも使い方がわかる。

Github https://github.com/tpope/vim-fugitive

VIM CASTS.org A complement to command line git |
http://vimcasts.org/episodes/fugitive-vim---a-complement-to-command-line-git/

special thanks @tek_koc