現在 neocomplcache は開発が neocomplete.vim へと移っており,保守のみが行われている状態です.しかし,neocomplcache は結構細かく設定していたりして移行に手間取りそうで二の足を踏んでいる人も多いのではないでしょうか.僕もそうだったのですが,今日時間が取れたので乗り換えてみたところ,乗り換えはとてもスムーズに出来ました.
neocomplcache の設定を受け継いでとりあえず移行する
Github の wiki に neocomplcache と neocomplete の API の対応表があり,それを見比べて neocomplete にも同じ設定を行うだけです.
neocomplcache の設定をコピペしてきて,対象範囲を :s/neocomplcache_/neocomplete#/g
してから始めるとさらに楽です.
if_lua でない環境では neocomplcache を使いたい
neocomplete は if_lua
が無かったり,7.3.885 以前の Vim では動作しないので,その場合に neocomplcache にフォールバックするように設定します.neobundle.vim を使っている場合,runtimepath にプラグインを入れず管理だけする NeoBundleFetch
があるため簡単に出来ます.
function! s:meet_neocomplete_requirements() return has('lua') && (v:version > 703 || (v:version == 703 && has('patch885'))) endfunction if s:meet_neocomplete_requirements() NeoBundle 'Shougo/neocomplete.vim' NeoBundleFetch 'Shougo/neocomplcache.vim' else NeoBundleFetch 'Shougo/neocomplete.vim' NeoBundle 'Shougo/neocomplcache.vim' endif if s:meet_neocomplete_requirements() " 新しく追加した neocomplete の設定 else " 今までの neocomplcache の設定 endif
この時点で僕は if_lua
による補完速度の向上を体感出来ました.
新機能については help を読みつつぼちぼち設定
とりあえず以前と同じように使えるようになればあとは焦ることは無いのでゆっくり設定を考えます.
neocomplete では,lua を用いた処理の高速化により,デフォルトで fuzzy マッチングがオンになっています.fuzzy マッチングでは,今までの単語の先頭からのマッチングだけでなく,単語と部分的にマッチする語も検索することが出来るようになります. neocomplcache のときの fuzzy マッチングは重くて OFF にしていましたが,neocomplete では実用レベルの速度で補完できます. なお,以前のような prefix マッチングが良ければ,もちろん fuzzy マッチングはオフにすることも出来ます.