neocomplcache.vim とは
入力補完機能を提供する Vim のプラグイン。
GitHub で公開されている。
Shougo/neocomplcache.vim
なお、 neocomplcache は "neo-completion with cache" の略。
操作イメージ
文字を入力すると、自動で補完候補が表示される。
(下の絵の水色の文字が補完候補。)
文字を入力する毎に、補完候補が絞られていく。
そして補完候補を選択すると、 neocomplacache が残りの文字を自動で入力してくれる。
導入方法
NeoBundle を導入済みの場合は、まずは以下を .vimrc に記述し、 Vim を起動する。
NeoBundle 'Shougo/neocomplcache'
そしてノーマルモードで以下のコマンドを実行すると、 neocomplcache.vim をインストールできる。
:NeoBundleInstall
設定
以下は、私の .vimrc に書いてある neocomplcache.vim の設定。
neocomplcache.vim の README に書いてある設定をほぼそのまま利用した。
"" neocomplcache
NeoBundle 'Shougo/neocomplcache'
" Disable AutoComplPop.
let g:acp_enableAtStartup = 0
" Use neocomplcache.
let g:neocomplcache_enable_at_startup = 1
" Use smartcase.
let g:neocomplcache_enable_smart_case = 1
" Set minimum syntax keyword length.
let g:neocomplcache_min_syntax_length = 3
let g:neocomplcache_lock_buffer_name_pattern = '\*ku\*'
" Define dictionary.
let g:neocomplcache_dictionary_filetype_lists = {
\ 'default' : ''
\ }
" Plugin key-mappings.
inoremap <expr><C-g> neocomplcache#undo_completion()
inoremap <expr><C-l> neocomplcache#complete_common_string()
" Recommended key-mappings.
" <CR>: close popup and save indent.
inoremap <silent> <CR> <C-r>=<SID>my_cr_function()<CR>
function! s:my_cr_function()
return neocomplcache#smart_close_popup() . "\<CR>"
endfunction
" <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()
上記設定の場合、 insert モードで以下の操作ができる。
キー | 操作 |
---|---|
<Tab> | 補完候補の選択。 |
Ctrl + g | 前回行われた補完をキャンセル。補完した文字を消す。 |
Ctrl + l | 補完候補の中から、共通する部分を補完。 |
各設定の意味は、以下のページで詳しく説明されている。
Vim-users.jp - Hack #177: neocomplcacheの設定について知る 前編
Vim-users.jp - Hack #185: neocomplcacheの設定について知る 中編
Vim-users.jp - Hack #193: neocomplcacheの設定について知る 後編
参考
-
Vim初心者によるVim導入記録(neocomplcache設定編) | Code Life
- 設定(.vimrc) の説明が分かりやすい