neocomplcache に乗り換えた。
Vim の自動補完にはずいぶん長く AutoComplPop を使っていたのですが、最近は neocomplcache がモダンらしいとのこと。
neocomplcacheとは?
Presentation file - neocomplcache - GitHub
VimScriptによって実装された究極の補完環境。
確かに、AutoComplPop の日本語入力との相性の悪さが気になってたんですよね。
というか、究極っていいですよね。究極ですよ究極!
ということで、重い腰を上げて乗り換えてみました。
AutoComplPop の各種ファイルを削除してから、vimball で一発インストール。
$ wget -O neocomplcache-5.1.vba http://www.vim.org/scripts/download_script.php?src_id=13456 $ vim neocomplcache-5.1.vba : source %
.vimrc で起動時に有効化すればすぐ使えるようになりました。
let g:neocomplcache_enable_at_startup = 1
初期設定が素晴らしく、特に設定しなくても快適に動きます。
とは言え、せっかくなのでヘルプを読んでいくつか設定してみました。
" neocomplcache let g:neocomplcache_enable_at_startup = 1 let g:neocomplcache_max_list = 30 let g:neocomplcache_auto_completion_start_length = 2 let g:neocomplcache_enable_smart_case = 1 "" like AutoComplPop let g:neocomplcache_enable_auto_select = 1 "" search with camel case like Eclipse let g:neocomplcache_enable_camel_case_completion = 1 let g:neocomplcache_enable_underbar_completion = 1 "imap <C-k> <Plug>(neocomplcache_snippets_expand) "smap <C-k> <Plug>(neocomplcache_snippets_expand) inoremap <expr><C-g> neocomplcache#undo_completion() inoremap <expr><C-l> neocomplcache#complete_common_string() "" SuperTab like snippets behavior. "imap <expr><TAB> neocomplcache#sources#snippets_complete#expandable() ? "\<Plug>(neocomplcache_snippets_expand)" : pumvisible() ? "\<C-n>" : "\<TAB>" "" <CR>: close popup and save indent. "inoremap <expr><CR> neocomplcache#smart_close_popup() . (&indentexpr != '' ? "\<C-f>\<CR>X\<BS>":"\<CR>") inoremap <expr><CR> pumvisible() ? neocomplcache#close_popup() : "\<CR>" "" <TAB>: completion. inoremap <expr><TAB> pumvisible() ? "\<C-n>" : "\<TAB>" "" <C-h>, <BS>: close popup and delete backword char. inoremap <expr><C-h> neocomplcache#smart_close_popup() . "\<C-h>" inoremap <expr><BS> neocomplcache#smart_close_popup() . "\<C-h>" inoremap <expr><C-y> neocomplcache#close_popup() inoremap <expr><C-e> neocomplcache#cancel_popup()
ほとんどおすすめ設定のままです。
スニペット関連は使ってない(まだ試してない)のでコメントアウトしてます。
あと
設定で参考になったリンクを挙げておきます。
- :help neocomplcache@ja (基本!各設定項目の詳細が載ってます)
- .vim/doc/neocomplcache.txt (サンプルの設定が見れます)
- Presentation file - neocomplcache - GitHub (機能の概要やChangelogなど)
- Neocomplcache tips: - neocomplcache - GitHub (キーバインドなどの設定に関するTips)
neocomplcache の基本機能は十分満足でした。速度も高速です。
個人的なTodoとしては、スニペットを試してみるのと、インクルード補完を使って JavaScript のスマートな補完を実現すること。例えば Google Closure なら、goog.require() をうまく捉えればできるのかな?
それでは究極の補完ライフを!