VCS Vim plugins
VCS を扱う Vim plugin が乱立していて、訳がわからなくなってきたのでまとめてみた。
https://github.com/motemen/git-vim
- Author: motemen
- 対応 VCS は Git のみ
- status, log, diff, push, pull といった基本操作を Vim 上で行うことができる
- :GitStatus が便利
- 歴史が古く、今でも使用者がいる
https://github.com/tpope/vim-fugitive
- Author: Tim Pope
- 対応 VCS は Git のみ
- Git に特化しているが、その高機能さに定評がある
- git.vim からの乗り換えが多い
- git add -p のグラフィカル表示、git blame のグラフィカル表示が便利
- ステータスラインにブランチ名を表示する機能がある
-
:Git
を用いると Git の汎用コマンドを実行できるが、このとき引数を補完できる
https://github.com/thinca/vim-vcs
- Author: thinca
- 対応 VCS は Git のみ。対応 VCS を拡張できるため、将来的には他の VCS にも対応予定
- 現在、テスト版が公開されている
- VCS の基本操作をまとめることで、機能の共通化を実現
- VCS に特化した機能は使いづらい
- バッファ管理部分を vim-openbuf に依存することで、機能の共通化を狙っている
- thinca 氏が手元で未公開のバージョンを作成中らしいが、数年単位で進展がない……。
https://github.com/Shougo/vim-vcs
- vim-vcs を fork したもの
- 対応 VCS は Git, Mercurial
- git.vim にあるようなステータスバッファの機能、
vcs#info()
の機能追加がある - 処理の最適化を行っている
-
vcs#info()
はステータスラインや vimshell の右プロンプトにブランチ情報を表示できる
https://github.com/hrsh7th/vim-versions
- Author: hrsh7th
- 対応 VCS は Git, Subversion
- 表示や実行が unite.vim に依存している(将来的には独立させる予定らしい)
-
versions#info()
でリポジトリの情報を表示可能だが、vcs#info()
と比較するとまだ不完全 - 対応アクションは commit, log, status など
https://github.com/gregsexton/gitv
- Author: Greg Sexton
- 対応 VCS は Git のみ
- 名前は GIT Viewer の略?
-
:GitV
でコミットを追い掛け、:GitV!
でファイルの更新を追い掛ける。感覚としては gitk や tig に近い。 - Git 操作のためというよりも Git のログを見るために使用する
https://github.com/tokuhirom/unite-git/
- Author: tokuhirom
- unite.vim に依存
- git で管理しているファイルを編集する
-
file_rec
source の代わりとなる
https://github.com/taka84u9/unite-git
- 上記の拡張版?
- unite.vimに依存
- untracked なファイルや modified なファイルのみのリストを参照できる
http://this.aereal.org/entry/2012/07/28/032951
- Author: aereal
- unite.vimに依存
- Git でコンフリクトしたファイルの一覧を参照するための unite source
https://github.com/yomi322/vim-gitcomplete
- Author: yomi322
- 対応 VCS は Git のみ
- Git のコマンド引数補完の実装
- 元は vimshell 用だが、他のプラグインでも使用可能
https://github.com/kmnk/vim-unite-giti http://kmnk.blogspot.jp/2013/01/git-unite-unite-source.html
- Author: kmnk
- 対応 VCS は Git のみ
- unite.vim に依存している
- status, branch, config, log, blame に対応
- Git を専門に扱う Vim plugin では一番高機能?
- config を操作できるのは珍しい
- テストが充実している
- 今後は非同期化を考えているらしい
https://github.com/kmnk/vim-unite-svn
- Author: kmnk
- 対応 VCS は Subversion のみ
- unite.vim に依存している
- status, diff, blame に対応
- 現在では、giti のほうに力を入れている?
http://www.vim.org/scripts/script.php?script_id=90
- Author: Bob Hiestand
- 対応 VCS は CVS/SVN/SVK/Git/Mercurial/bzr
- かなり初期のころからあり、有名
- 最近は更新されていない
- 各コマンドが抽象化されている
- vim-vcs の目標?
https://bitbucket.org/ns9tks/vim-scmfrontend
- Author: ns9tks
- 対応 VCS は Mercurial/Git/Bazaar
- 各コマンドは抽象化されている
- 補完の充実
- FuzzyFinder との連携
- 最近は更新されていない
https://github.com/kana/vim-vcsi
- Author: kana
- 対応 VCS は svk/Git/Subversion/CVS(計画中)
- 各コマンドは抽象化されている
- vcs.vim に仕様が近い
- 対応 OS が Unix 系のみ
- 最近は更新されていない
https://github.com/Kocha/vim-unite-tig http://lsifrontend.hatenablog.com/entry/2013/01/29/000346
- Author: Kocha
- 対応 VCS は Git
- git のログビューワ tig を unite インタフェースで実現する
- unite.vim に依存している
- ドキュメントは日本語のみ
- 実装予定の機能
- neobundle管理 gitリポジトリを検索/表示
- ファイル毎のdiff log表示
- 該当ファイルを開く
- Git 自体の操作を実装する予定はあまりない