03/05/18 00:20
違うアプローチで作ってみました.
挿入モードで演算子を入力するとスペースを挿入します.
# コマンドモードに戻る必要はありません.
●注意事項
プログラミング言語の仕様に+と++のような同じ文字を使った
二種類の演算子がある場合は両方をmapして下さい.
第2引数でスペースを入れるかどうかを指定します.
これにより,++の時はスペースを入れない,==の時はスペースを入れる
といった使い分けが出来ます.
スペースを入れない仕様は意味が無さそうですが,+をmapして++をmapしないと,
++が入力できなくなってしまうので仕方なくこういう仕様にしました.
●1点だけごめんなさい項目があります.
行頭ではmapした記号を入力できません.
ただし,一般的にはインデントを入れるので気にならないでしょう.
" 両側にスペースを入れたい演算子をmappingする
inoremap <buffer> <silent> + <Esc>:call InsertSpaceOnBothSides('+', 1)<CR>a
inoremap <buffer> <silent> - <Esc>:call InsertSpaceOnBothSides('-', 1)<CR>a
inoremap <buffer> <silent> * <Esc>:call InsertSpaceOnBothSides('*', 1)<CR>a
inoremap <buffer> <silent> / <Esc>:call InsertSpaceOnBothSides('/', 1)<CR>a
inoremap <buffer> <silent> % <Esc>:call InsertSpaceOnBothSides('%', 1)<CR>a
inoremap <buffer> <silent> = <Esc>:call InsertSpaceOnBothSides('=', 1)<CR>a
inoremap <buffer> <silent> ++ <Esc>:call InsertSpaceOnBothSides('++', 0)<CR>a
inoremap <buffer> <silent> -- <Esc>:call InsertSpaceOnBothSides('--', 0)<CR>a
inoremap <buffer> <silent> == <Esc>:call InsertSpaceOnBothSides('==', 1)<CR>a