Vim C言語系の構文を持つプログラム言語用にVimを最適化する その4
動作
()の中でスペースキーが押されたら以下のように補完する
(←ココにカーソル) スペースを入力すると ↓ ( ←ココにカーソル )
()の中以外のところでスペースキーが押された場合は、通常通りスペースを入力する
←ココにカーソル スペースを入力すると ↓ ←ココにカーソル
※ 表示上見やすいように半角スペースを2つ入れていますが、本当は1つです。
.vimrc
"括弧内でスペースが押された場合に、( ←ココにカーソル )状態にする function GetSpace() let nextChar = strpart(getline('.'), col('.') - 1, 1) let prevChar = strpart(getline('.'), col('.') - 2, 1) if nextChar == ")" if prevChar == "(" return "\<Space>\<Space>\<Left>" endif endif return "<Space>" endfunction au FileType c,cpp,java,javascript inoremap <expr> <Space> GetSpace()