今使ってるVimプラグインで、似たような機能を提供するもの同士を比較してみるテスト。あくまで個人的な比較なので参考程度に。と言いたいけど細かい説明相当端折ってるので参考にもならないかも。
ここで挙げている特徴はもう一方に対する特徴であり、もう一方にはないと言う意味。細かい機能を全部列挙してると大変なので、有名どころ、個人的に重要な機能を中心にピックアップ。
ちなみに私の環境には以下で比較してるプラグインは全て入っていて、たまに気まぐれに使う方を切り替えたりしてる*1。
fuzzyfinder.vim vs ku.vim
バッファやファイルなどを曖昧に選択できるプラグイン。
どちらも起動すると上部分に小さな選択用ウィンドウが開かれ、選択候補がポップアップで表示される。
両者の違い
fuzzyfinder.vim | ku.vim | |
---|---|---|
比較バージョン | 2.19 | 0.1.9 |
候補選択用ウィンドウの開かれる位置 | 現在のウィンドウの上部 | 現在のタブページの最上部 |
候補選択用ウィンドウの高さ | 1行 | 2行 |
ポップアップ方式 | ユーザ定義補完 | オムニ補完 |
ソース | Buffer File Directory MRU-File MRU-Command Bookmark Tag TaggedFile |
buffer file(+directory) history source (pluggable なので追加可能) |
fuzzyfinder.vim の特徴
ku.vim の特徴
- ソースが pluggable。
- 選択した対象に対して多数のアクションが選べる。
- fuzzyfinder.vim は、その場、横分割、縦分割、タブのいずれかで開く、の4つのみ。
- ku.vim は、加えて一番下、とか :lcd する、とかいっぱいある。(ソースによって異なる)
- 候補選択ウィンドウに対してかなり自由な初期化が可能。
- autocmd FileType ku を使う。
- file で、デフォルトでは . で始まるファイル、ディレクトリを隠してくれる。
- . を入れると表示される。
- :help がある。
極めて個人的な感想
ku.vim の pluggable な点については大きな可能性を感じつつも、 fuzzyfinder.vim の候補の並び順の調整のされ方が秀逸で、結局今のところは fuzzyfinder.vim を使ってる。個人的にはソーティングの他に、複合検索、初期文字列設定などがポイント高いです。
ソーティングに関しては ku.vim の方はソースごとに制御できる関係もあってかこういった機能は付いてない模様。でも逆にマッチ具合とかでの並び替えはソース側からはできないから、本体でやってくれると嬉しいなぁ。ソース側の順序は同ランクだったときの順序とかで十分だと思う。
ku.vim は、作者様がかなりこだわってたのもありかなり動作が速い(気がする。ちゃんと計ったわけではない)。
オムニ補完を使ってるのも地味にいい。ユーザ定義補完だと
あと、ku.vimはWindowsだとfileでディレクトリが辿れない模様。また、フルパス指定もできない。本当ならこんなところに書かずに作者に垂れ込むべきなんだろうけど、ソース見たら FIXME: になってたので恐らく知ってて放置してるのかと。
以前どこかで ku の tag ソースを書くとボソッと発言して未だに出来てないのは多分ずるずると fuzzyfinder.vim を使ってるのが原因かなぁ(言い訳すんな)。
autocomplpop.vim vs neocomplcache.vim
Vimの補完機能(:h ins-completion)を自動で呼び出すプラグイン。いちいち補完開始キーを押さなくても補完を開始してくれるので、補完機能の恩恵を存分に受けることが出来る。
両者の違い
autocomplpop.vim | neocomplcache.vim | |
---|---|---|
比較バージョン | 2.6 | 1.48 |
補完方法 | 状況に応じた各種組み込み補完 | ユーザ定義補完 |
Vim起動時 | デフォルトで有効 | デフォルトで無効 |
※両者ともあまり設定は弄ってないので細かな違いは把握しきれていない。
autocomplpop.vim の特徴
- 状況に応じてキーワード補完、ファイル補完、オムニ補完を自動で呼び出す。
- CursorMovedI ではなく key mapping をトリガにすることも可能。
- 昔の名残りなので通常は必要ない。
neocomplcache.vim の特徴
- ワイルドカードによる曖昧な補完が可能。
- 候補を効率的にソートしてくれる。
- オプション多い。
- ぶっちゃけここ見ればいいと思うよ。
極めて個人的な感想
一長一短。neocomplcache.vim は極めて柔軟な補完が可能だが、独自実装のため標準のキーワード補完では補完されるキーワードを拾いきれないことがある模様。
また、neocomplcache.vim の方はオムニ補完を起動してくれない。惜しい。
が、neocomplcache.vim の独自補完はかなり完成度高いと思う。「自動的に補完を開始してくれる」以上のことをしてくれる。キャッシュのおかげで速度も申し分ない。実際今はメインはこっちを使ってる。
何がしたかったかと言うと
こうやって書いておけばいつの間にか欠点が直ってたりしないかなーと言う作戦。
とりあえず勢いだけで書いてみたはいいけど全体的に言葉足らずで中途半端な記事になってしまった気がする。反省。*2
追記
表のプラグイン名を配布場所へのリンクにした。よく考えたら配布場所も書いてないのはどうかと思うよね…。
追記2
neocomplcache.vim のオムニ補完は、作戦通り1.50で実装されました。パチパチ。