basyura's blog

あしたになったらほんきだす。

neocomplcache ver5 に乗り換え

快適。「補完候補の自動表示」&「自動選択」&「Enter で補完確定」にしたらめっちゃ快適。eclipse ライクになった(おい)。動作も早くなってる。
気になるのは print (メソッド名)と打って次に改行したい場合に

print()

と補完候補が出て自動選択されてると、改行のつもりが () が入っちゃってアッーってなるところくらい。 でキャンセルすればいいだけなんだけど。
キーワードの先頭文字列をちょこっと打って Enter で確定していくのが気持ちいい。設定はこんな感じ。

" 起動時に有効
let g:neocomplcache_enable_at_startup = 1
" snippet ファイルの保存先
let g:neocomplcache_snippets_dir='~/.vim/snippets'
" dictionary
let g:neocomplcache_dictionary_filetype_lists = {
    \ 'default' : '',
    \ 'objc' : $HOME . '/.vim/dict/objc.dict'
\ }
" 日本語をキャッシュしない
let g:neocomplcache_keyword_patterns['default'] = '\h\w*'
" 補完候補の数
let g:neocomplcache_max_list = 5
" 1番目の候補を自動選択
let g:neocomplcache_enable_auto_select = 1
" 辞書読み込み
noremap  <Space>d. :<C-u>NeoComplCacheCachingDictionary<Enter>
" <TAB> completion.
inoremap <expr><TAB> pumvisible() ? "\<C-n>" : "\<TAB>"
" C-jでオムニ補完
inoremap <expr> <C-j> &filetype == 'vim' ? "\<C-x>\<C-v>\<C-p>" : "\<C-x>\<C-o>\<C-p>"
" C-kを押すと行末まで削除
inoremap <C-k> <C-o>D
" C-nでneocomplcache補完
inoremap <expr><C-n>  pumvisible() ? "\<C-n>" : "\<C-x>\<C-u>\<C-p>"
" C-pでkeyword補完
inoremap <expr><C-p> pumvisible() ? "\<C-p>" : "\<C-p>\<C-n>"
" 補完候補が表示されている場合は確定。そうでない場合は改行
inoremap <expr><CR>  pumvisible() ? neocomplcache#close_popup() : "<CR>"
" 補完をキャンセル
inoremap <expr><C-e>  neocomplcache#close_popup()

あと、不具合(?)ぽいのがひとつ。Java ソースを補完する場合

System.out.println

を補完しようとすると

System\.out\.println(

ってなる・・・。javascriptruby は大丈夫っぽい。たいして試してないんだけど。