neocomplcache.vim まとめ

  • 188
    いいね
  • 2
    コメント
この記事は最終更新日から1年以上が経過しています。

neocomplcache.vim とは

入力補完機能を提供する Vim のプラグイン。

GitHub で公開されている。
Shougo/neocomplcache.vim

なお、 neocomplcache は "neo-completion with cache" の略。

操作イメージ

文字を入力すると、自動で補完候補が表示される。
(下の絵の水色の文字が補完候補。)

image1.png

文字を入力する毎に、補完候補が絞られていく。

image2.png

そして補完候補を選択すると、 neocomplacache が残りの文字を自動で入力してくれる。

image3.png

導入方法

NeoBundle を導入済みの場合は、まずは以下を .vimrc に記述し、 Vim を起動する。

NeoBundle 'Shougo/neocomplcache'

そしてノーマルモードで以下のコマンドを実行すると、 neocomplcache.vim をインストールできる。

:NeoBundleInstall

設定

以下は、私の .vimrc に書いてある neocomplcache.vim の設定。
neocomplcache.vim の README に書いてある設定をほぼそのまま利用した。

Shougo/neocomplcache.vim

.vimrc
"" 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の設定について知る 後編

参考