fugitive.vim をもっと使いこなす
この記事は Vim Advent Calendar 2013 の 16 日目の記事です。 昨日は id:deris さんの Vimmerなら2013年中に試しておきたい海外産Vim plugin 8選 - derisの日記 でした。知らないプラグインあったので時間ができたら試してみたいですね。
進捗ダメです
すみません。本当は自作プラグインを大々的に紹介するつもりだったのですが、進捗ダメでした。今日は fugitive.vim の小ネタについて書きます。 次回作にご期待ください。
fugitive.vim について
Vim から Git を便利に使うプラグインです。詳しくは
- VimmerなGit使いはfugitive.vimを今すぐ入れたほうがいい - SELECT * FROM life;
- fugitive.vim が便利すぎたのでメモ - 反省はしても後悔はしない (ステマ)
みたいなところを参照してください。
とりあえず、git status
見たり、git add -p
を Vim の diff 機能を使って実行できたりしてとても便利です。
リポジトリのルートに cd する
あまり知られていないような気がしているのですが、
:Gcd
でリポジトリのルートに :cd
することができます。
:Gedit を使って違うリビジョンのファイルを開く
git を使っていると、違うブランチにあるファイルを開きたくなりますね。Gedit
でできます。
:Gedit feature-branch:path/to/file
<リビジョン>:<ファイル名> で特定のリビジョンの特定のファイルを閲覧することができます。ただ、このコマンドは :edit
相当なので現在のウィンドウで開きます。他には :vsplit
相当の :Gvsplit
などがあります。
:
の前はリビジョンを指定します。ブランチ名や HEAD^
のような指定の仕方以外にも fugitive.vim が定義する便利な記法が使えます。
例えば、~3
だけで HEAD~3
と同様の意味になります。詳しくは :help fugitive-revision
そして、これらのコマンドはブランチ名およびファイル名の補完が効きます。ファイル名の補完に至っては、現在のワーキングディレクトリになくても入力したリビジョンにあれば補完されます。
:Gdiff で違うリビジョンとの diff を取る
:Gdiff
といえば、git add -p
がとても便利ですが、別リビジョンにある同ファイルとの diff を取ることもできます。
:Gdiff feature-branch
例えば、:Gdiff develop
で develop
ブランチとの diff を取ったり、:Gdiff ~3
で 3 つ前のコミットと diff 取ったりできます。
おわりに
- 進捗ダメです
- fugitive.vim は内部の実装汚いけど便利
明日は @cocopon さんです。