vim使いながら、!gitコマンドたたくのやだなと思ったので
gitプラグインを探してら、すごくいいのに出会いました。
motemen's git-vim at master - GitHub
#README.rdoc
== Commands
[:GitAdd] git-add or current file if not specified.
[:GitCommit] git-commit.
[:GitStatus] Show git-status of current file or repository.
[:GitLog] Show git-log of current file or repository.
[:GitCheckout] git-checkout. Completes git commits.
[:GitDiff] git-diff. Completes git commits.
[:GitPull] git-pull.
[:GitPullRebase] git-pull --rebase.
[:GitPush] git-push. Defaults to +git push origin +.
[:GitCatFile] git-cat-file.
[:Git] Does any git command.
[:GitVimDiffMerge] Experimental. Call this command on unmerged file to enter vimdiff mode.
[:GitVimDiffMergeDone] Call this command after merging.== Keymaps
[gd] :GitDiff
[gD] :GitDiff --cached
[gs] :GitStatus
[gl] :GitLog
[ga] :GitAdd
[gA] :GitAdd
[gc] :GitCommit === In git-status buffer
[] :GitAdd
まぁこんな感じのコマンドが使えます。
凄いのが最後のとこ
=== In git-status buffer
[] :GitAdd
\gs(:GitStatus)ってやったあと
git statusの結果が出力されるので
そこでファイル名にカーソル合わせてEnterすると:GitAddされるんですよ。
んでもって、ソース見たら、「-」も用意されてて
git reset HEADしてくれるんですよ。
(私の環境では「-」すると再描画
#plugin/git.vim " Show Status. function! GitStatus() let git_output = s:SystemGit('status') call <SID>OpenGitBuffer(git_output) setlocal filetype=git-status nnoremap <buffer> <Enter> :GitAdd <cfile><Enter>:call <SID>RefreshGitStatus()<Enter> nnoremap <buffer> - :silent !git reset HEAD -- ^R=expand('<cfile>')<Enter><Enter>:call <SID>RefreshGitStatus()<Enter> endfunction
こういうことらしい。すごいな。