Vimを使っててGitのプラグインが欲しいなーと思ったらたいていの人が使ってる(と思う)gitgutterですが、他の記事とか読んでても横にDiffをつけるくらいしかやっていない。。
これでは能力の無駄遣いすぎる気がするので、色々調べて使えそうな機能をまとめようと思います。
とりあえずインストール
僕はdeinsを使っているので、インストールはこんな感じです。
詳しくは公式ページをどうぞ
[[plugins]]repo="airblade/vim-gitgutter"
HEADからの差分を表示
インストールが済んだらGitで管理しているページを開いてください。
ページを開いて、適当に変更して保存すると以下のように行数の横に+や−が表示出来ていると思います。
次の変更まで進みたいなら ]c
、前の変更に戻りたいなら [c
で移動することが出来ます。
ショートカットを変更したいなら以下のコードをvimrcに加えてください。
nmap ]h <Plug>GitGutterNextHunk
nmap [h <Plug>GitGutterPrevHunk
と、ここまでがよくある記事です。
ここからは更に便利な機能を書いていきたいと思います。
Glog
これは git log
のコマンドですね。
ノーマルモードで :Glog
を実行すると以下のような表示が出ます。::
の後ろは今は消してますが、コミットメッセージが表示されます。
これは単体ではあまり使えませんが次の Gdiff
と組み合わせるとこで効果を発揮します。
fugitive:///~/.git//8f3032e5b4b02063e299d8be805d1d81738dc3c4/pages/index.vue::...
fugitive:///~/.git//03a7ecbcbf7f244b9fa031ff67e737823fb18dfb/pages/index.vue::...
fugitive:///~/.git//fae312dd5ff77dbb0e8e974c978f0e803b41796a/pages/index.vue::...
fugitive:///~/.git//2eac7fb5084fe094f20ebd51bbac08649d6e4b08/pages/index.vue::...
fugitive:///~/.git//54e42bdc3acece96f77731180249f9c552c5b124/pages/index.vue::...
fugitive:///~/.git//65d924c0cee3a034cbe03ad2cdeb0d5472fbaf9a/pages/index.vue::...
fugitive:///~/.git//c71cf6d87d123fcc3a4e625f52c535adcf361c16/pages/index.vue::...
fugitive:///~/.git//add95331805cb415d81ce14cfc98d344834a9a01/pages/index.vue::...
fugitive:///~/.git//8067e36a079e9871522a58a64ee02da699874cb3/pages/index.vue::...
fugitive:///~/.git//9e6d8ba9bcfe36266e89cffefcecd8b02d33dd34/pages/index.vue::...
fugitive:///~/.git//f90276408d13eca8c15a4766fcc77514e04a2ea2/pages/index.vue::...
また、 :Glog --oneline
とすることによって以下のような短いバージョンの結果を得ることも出来ます!
8f3032e ...
03a7ecb ...
fae312d ...
2eac7fb ...
54e42bd ...
65d924c ...
c71cf6d ...
add9533 ...
8067e36 ...
9e6d8ba ...
f902764 ...
Gdiff
これはgit diffのコマンドを行ってくれるコマンドです。
ノーマルモードで :Gdiff
と実行すると以下のようにHEADの状態と現在の状態を比較することができます。
このコマンドを見ることで前の状態との変更を見ながらコーディング出来ます!
また、HEADよりも前にさかのぼって確認したいときは Glog
をつかって
:Gdiff コミット番号
のように書きます。コミット番号は上で言うと 8f3032e5b4b02063e299d8be805d1d81738dc3c4
の部分です。
Gblame
このコマンドを実行すると以下のように誰によるいつどのコミットでの変更なのかを見ることが出来ます。
これは、複数人開発の時によくわからないコードがあった時に誰に聞けばいいかが分かるというとても便利な機能です!
下の画像では一人しかいませんが、、笑
Gbrowse
正直僕が一番紹介したいと思ってたのはこの機能です。
GitHubなど複数人での作業で、GitHub上でやり取りをするならこの機能はすごく便利だと思います。
ただし、この機能はもしGitHubを使っている場合はvim-rhubarbが必要となります。
これはリポジトリがGitHubやGitlabなどにミラーされていることを推測し、現在のファイルをブラウザ内のオプションの行選択で開くことが出来ます。
開く方法は簡単でまず、Shift-Vで表示したい行を選択します。あとは :Gbrowse
を入力し、開いたページのURLをGitHubのPull RequestやIssueに貼ると以下の画像のような結果が得られます。
終わりに
このようにgit-gutterにはあまり知られていない機能が沢山あります!(GbrowseとかREADMEにのせてほしい。。)
他にも便利な機能がありましたら、コメントなどで教えてください!