neocompleteを入れてみた作業ログ
Vim Advent Calendar 2012の364日目の記事になります。
363日目は@haya14busaさんによる Vim-Easymotionを拡張してカーソルを縦横無尽に楽々移動する でした。
あと1日でvacが365日達成してしまうことに驚きを隠せません。
advent calendarとは一体何だったのか。
では本題に入ります。
neocomplcacheが進化してneocompleteとなったことは知ってましたがif_luaを使ってるためインストールは敬遠していました。
そんな僕もShougoさんのスライドを見てneocompleteに移行することを決意しました。
neocomplcacheはもう開発がされないそうですしね。
という訳でやったことをメモしておきます。
vimのビルド
$ cd /usr/local/src $ hg clone https://vim.googlecode.com/hg/ vim $ cd vim $ vim vuild.sh $ cat vuild.sh #!/bin/sh ./configure \ --prefix=/usr/local \ --with-features=huge \ --enable-multibyte \ --enable-luainterp \ --enable-fail-if-missing && make && make install $ chmod +x vuild.sh $ ./vuild.sh $ alias vim="/usr/local/bin/vim"
正直configureはそんなにわかってない。
vimを起動して、:version で確認してみる。
問題なさそうです!
では最後にneocompleteをvimにインストールしていきます。
neocompleteのインストール
.vimrcに以下を記述します(neobundleを使用)。
" if_luaが有効ならneocompleteを使う NeoBundle has('lua') ? 'Shougo/neocomplete' : 'Shougo/neocomplcache' if neobundle#is_installed('neocomplete') " neocomplete用設定 let g:neocomplete#enable_at_startup = 1 let g:neocomplete#enable_ignore_case = 1 let g:neocomplete#enable_smart_case = 1 if !exists('g:neocomplete#keyword_patterns') let g:neocomplete#keyword_patterns = {} endif let g:neocomplete#keyword_patterns._ = '\h\w*' elseif neobundle#is_installed('neocomplcache') " neocomplcache用設定 let g:neocomplcache_enable_at_startup = 1 let g:neocomplcache_enable_ignore_case = 1 let g:neocomplcache_enable_smart_case = 1 if !exists('g:neocomplcache_keyword_patterns') let g:neocomplcache_keyword_patterns = {} endif let g:neocomplcache_keyword_patterns._ = '\h\w*' let g:neocomplcache_enable_camel_case_completion = 1 let g:neocomplcache_enable_underbar_completion = 1 endif inoremap <expr><TAB> pumvisible() ? "\<C-n>" : "\<TAB>" inoremap <expr><S-TAB> pumvisible() ? "\<C-p>" : "\<S-TAB>"
念のため、if_luaが効いてない環境でも補完が動くよう、neocomplcacheの設定は残しました。
感想
速度の向上はまだ実感できてませんが、あいまい補完の動作はちょっとした感動です。
またtypoした文字列をいつまでもキャッシュされないというのもポイント高いです。
とりあえずこれで様子を見ながら他のオプションも設定したいですね。