Hack #219: Gitを使う2 – Fugitive.vim
Posted at 2011/06/19ツイート
Vim の中で Git を快適に使うためのプラグインがいつくかあります。 その中から Time Pope さん作の Fugitive.vim を紹介します。
motemen さんの git.vim については Hack #67: Gitを使う を参照してください。 今回の記事は対比のためフォーマットを似せています。
インストール
plugin は github から入手可能です。 https://github.com/tpope/vim-fugitive
また Vundle でもインストール可能です。
:BundleInstall tpope/vim-fugitive
使い方
以下のコマンドが定義されます。
- Git arg: git コマンドと同様の機能を有し、自分で定義した alias も使用出来ます。
Git コマンドを使用した場合は結果を pager に表示します。 以下のコマンドを使用すると結果は状況に応じてバッファ内、quickfix list 等に表示されます。 また、diff を vimdiff で表示したり、blame もハイライトされた状態で表示されたりと、それだけでも利用価値があると筆者は考えます。
- :Gdiff[ rev]: git diff[ --cached] {編集中のファイル}
- :Gstatus: git status
- :GlLog[ rev]: git log {編集中のファイル}
- :Gwrite: git add {編集中のファイル}
- :Gread[ rev]: git checkout {編集中のファイル}
- :Gcommit: staged なファイルがあれば git commit なければ git status
- :Gblame[ rev]: git blame {編集中のファイル}
上記以外にも Git を扱ううえで有用なコマンドが多数定義されます。:help fugitive を参照してください。
Gstatus 時の挙動について
:Gstatus を使用すると、Window が split され git status の結果が表示されます。
定義されたいくつかの mapping を利用することで、更に便利になります。
: カーソル下にあるファイルを edit - -: カーソル下にあるファイルを git add
- p: カーソル下にあるファイルを git add -p
- D: カーソル下にあるファイルを git diff[ --cached]
- C: git commit
応用
筆者は以下のように mapping して利用しています。
" for Fugitive {{{
nnoremap <Space>gd :<C-u>Gdiff<Enter>
nnoremap <Space>gs :<C-u>Gstatus<Enter>
nnoremap <Space>gl :<C-u>Glog<Enter>
nnoremap <Space>ga :<C-u>Gwrite<Enter>
nnoremap <Space>gc :<C-u>Gcommit<Enter>
nnoremap <Space>gC :<C-u>Git commit --amend<Enter>
nnoremap <Space>gb :<C-u>Gblame<Enter>
" }}}
参照資料
Sixeightもどる
blog comments powered by Disqus