Skip to content
Shougo edited this page Jan 29, 2013 · 12 revisions

VCS を扱う Vim plugin が乱立していて、訳がわからなくなってきたのでまとめてみた。

git.vim

https://github.com/motemen/git-vim

  • Author: motemen
  • 対応 VCS は Git のみ
  • status, log, diff, push, pull といった基本操作を Vim 上で行うことができる
  • :GitStatus が便利
  • 歴史が古く、今でも使用者がいる

fugitive

https://github.com/tpope/vim-fugitive

  • Author: Tim Pope
  • 対応 VCS は Git のみ
  • Git に特化しているが、その高機能さに定評がある
  • git.vim からの乗り換えが多い
  • git add -p のグラフィカル表示、git blame のグラフィカル表示が便利
  • ステータスラインにブランチ名を表示する機能がある
  • :Git を用いると Git の汎用コマンドを実行できるが、このとき引数を補完できる

vim-vcs

https://github.com/thinca/vim-vcs

  • Author: thinca
  • 対応 VCS は Git のみ。対応 VCS を拡張できるため、将来的には他の VCS にも対応予定
  • 現在、テスト版が公開されている
  • VCS の基本操作をまとめることで、機能の共通化を実現
  • VCS に特化した機能は使いづらい
  • バッファ管理部分を vim-openbuf に依存することで、機能の共通化を狙っている
  • thinca 氏が手元で未公開のバージョンを作成中らしいが、数年単位で進展がない……。

vim-vcs(Shougo forked)

https://github.com/Shougo/vim-vcs

  • vim-vcs を fork したもの
  • 対応 VCS は Git, Mercurial
  • git.vim にあるようなステータスバッファの機能、vcs#info() の機能追加がある
  • 処理の最適化を行っている
  • vcs#info() はステータスラインや vimshell の右プロンプトにブランチ情報を表示できる

vim-versions

https://github.com/hrsh7th/vim-versions

  • Author: hrsh7th
  • 対応 VCS は Git, Subversion
  • 表示や実行が unite.vim に依存している(将来的には独立させる予定らしい)
  • versions#info() でリポジトリの情報を表示可能だが、 vcs#info() と比較するとまだ不完全
  • 対応アクションは commit, log, status など

gitv

https://github.com/gregsexton/gitv

  • Author: Greg Sexton
  • 対応 VCS は Git のみ
  • 名前は GIT Viewer の略?
  • :GitV でコミットを追い掛け、:GitV! でファイルの更新を追い掛ける。感覚としては gitk や tig に近い。
  • Git 操作のためというよりも Git のログを見るために使用する

unite-git

https://github.com/tokuhirom/unite-git/

  • Author: tokuhirom
  • unite.vim に依存
  • git で管理しているファイルを編集する
  • file_rec source の代わりとなる

unite-git

https://github.com/taka84u9/unite-git

  • 上記の拡張版?
  • unite.vimに依存
  • untracked なファイルや modified なファイルのみのリストを参照できる

unite-git/conflicts

http://this.aereal.org/entry/2012/07/28/032951

  • Author: aereal
  • unite.vimに依存
  • Git でコンフリクトしたファイルの一覧を参照するための unite source

git-complete

https://github.com/yomi322/vim-gitcomplete

  • Author: yomi322
  • 対応 VCS は Git のみ
  • Git のコマンド引数補完の実装
  • 元は vimshell 用だが、他のプラグインでも使用可能

unite-giti

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 を操作できるのは珍しい
  • テストが充実している
  • 今後は非同期化を考えているらしい

unite-svn

https://github.com/kmnk/vim-unite-svn

  • Author: kmnk
  • 対応 VCS は Subversion のみ
  • unite.vim に依存している
  • status, diff, blame に対応
  • 現在では、giti のほうに力を入れている?

vcscommand.vim

http://www.vim.org/scripts/script.php?script_id=90

  • Author: Bob Hiestand
  • 対応 VCS は CVS/SVN/SVK/Git/Mercurial/bzr
  • かなり初期のころからあり、有名
  • 最近は更新されていない
  • 各コマンドが抽象化されている
  • vim-vcs の目標?

vim-scmfrontend

https://bitbucket.org/ns9tks/vim-scmfrontend

  • Author: ns9tks
  • 対応 VCS は Mercurial/Git/Bazaar
  • 各コマンドは抽象化されている
  • 補完の充実
  • FuzzyFinder との連携
  • 最近は更新されていない

vim-vcsi

https://github.com/kana/vim-vcsi

  • Author: kana
  • 対応 VCS は svk/Git/Subversion/CVS(計画中)
  • 各コマンドは抽象化されている
  • vcs.vim に仕様が近い
  • 対応 OS が Unix 系のみ
  • 最近は更新されていない

unite-tig

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 自体の操作を実装する予定はあまりない