2012-01-17

vimプラグインneocomplecacheのキーバインド設定

vimでneocomplecacheを試している。何も設定しないと使えない機能があったりやや謎の挙動を示したりするので、キーバインドを設定する必要がある。

imap <C-k> <Plug>(neocomplcache_snippets_expand)
smap <C-k> <Plug>(neocomplcache_snippets_expand)
" inoremap <expr><C-g> neocomplcache#undo_completion()  " buggy
inoremap <expr><C-l> neocomplcache#complete_common_string()
inoremap <expr><CR> neocomplcache#close_popup() . "\<CR>"
inoremap <expr><TAB> pumvisible() ? "\<C-n>" : "\<TAB>"
" inoremap <expr><C-h> neocomplcache#smart_close_popup() . "\<C-h>"
" inoremap <expr><BS> neocomplcache#smart_close_popup() . "\<BS>
inoremap <expr><C-y> pumvisible() ? neocomplcache#close_popup() : "\<C-y>"
" inoremap <expr><C-e> neocomplcache#cancel_popup()
  • コードスニペット補完のプレースホルダを移動するのに<C-k>を用いるようにする。
  • ポップアップ中に<C-g>を押すことで補完をキャンセルできるはずだが、現在何か挙動が変なのでコメントアウトしてある。
  • ポップアップ中に<C-l>を押すことで候補の最長共通部分まで補完を進めるようにする。
  • ポップアップ中に<CR>を押すことで、ポップアップを閉じ、候補を選択していない場合には単に改行を入れ、選択している場合には確定して改行をいれるようにする。
    • <CR>は何も設定しないと改行が入力されたりしなかったりする謎の挙動をする。
  • ポップアップ中に<TAB>を押すことで次候補に移動するようする。
  • ポップアップ中に<BS>を押すことでポップアップを閉じて1文字削除するようにできるが、1文字削除に伴って候補が更新される方が好みなので設定しない。
  • ポップアップ中に<C-y>を押すことで選択候補を確定させてポップアップを閉じるようにする。
  • ポップアップ中に<C-e>を押すことで候補の選択をキャンセルしてポップアップを閉じるようにできるが、単に候補の選択をキャンセルする方が好みなので設定しない。

0 件のコメント:

コメントを投稿