vim7がリリースされ、使っているうちにだんだんとvim7じゃないと辛い身体になりつつあります。omni補完(omni-completion)とタブ表示が便利。
omni補完はある程度入力すると左のような候補リストが出てきてその候補から選んでいくと言うもの。右の例ではPHPのソースを「str」と打ってからomni補完を起動している(str_replaceとか表示されてる)。
omni補完は入力モード中にある程度入力してから「Ctrl-x」をしてから「Ctrl-o」をすると起動できる。さてその起動を「Tab」キーをクリックするだけで表示させようというTipsの紹介です。
以下のようなコードをvimrcやgvimrcで設定すると実現可能らしい。うーんshellチック。ステキ。
function InsertTabWrapper()
if pumvisible()
return "\<c-n>"
endif
let col = col('.') - 1
if !col || getline('.')[col - 1] !~ '\k\|<\|/'
return "\<tab>"
elseif exists('&omnifunc') && &omnifunc == ''
return "\<c-n>"
else
return "\<c-x>\<c-o>"
endif
endfunction
inoremap <tab> <c-r>=InsertTabWrapper()<cr>