Vim C言語系の構文を持つプログラム言語用にVimを最適化する その2
2008/05/18 追記
snippetsEmu.vimプラグインを使用すると、以下と同じような動作をさせることが可能になります。
snippetsEmu.vimのほうが汎用的に使うことができ、また、プレースホルダによるジャンプも可能であるため、そちらを使用したほうがよいです。
動作
switch-case文記述中に:が押されたら:+break;を以下のように補完する
switch ( hoge ) { case 1:と入力すると }
↓
switch ( hoge ) { case 1: ←ここにカーソル break; }
.vimrc
"switch-case文中の:を:+が入力されたときに+改行を行う function GetColonForC() let line = strpart(getline('.'), 0, col('.') - 1) "switch文のcase or defaultを記述中か? let serchWords = [ \ '^\t*case \=', \ '^\t*default$' \ ] let actions = [ \ ":\<CR>break;\<UP>\<Esc>o", \ ":\<CR>break;\<UP>\<Esc>o" \] let i = 0 for regexp in serchWords if line =~ regexp return actions[i] endif let i = i + 1 endfor return ":" endfunction au FileType c,cpp,java,javascript inoremap <expr> : GetColonForC()