vim-smartchr
上記のサイトを参考にしていた.
しかし, '+'が' + 'や'-'が' - 'になるデメリットの方が大きく感じた
inoremap <expr> / smartchr#one_of('/', ' // ') inoremap <expr> & smartchr#one_of('&', ' && ') inoremap <expr> <Bar> smartchr#one_of('<Bar>', ' <Bar><Bar> ') inoremap <expr> , smartchr#one_of(', ', ',') inoremap <expr> = search('+\%#', 'bcn')? '<bs> += ' \ : search('-\%#', 'bcn') ? '<bs> -= ' \ : search('\*\%#', 'bcn') ? '<bs> *= ' \ : search('/\%#', 'bcn') ? '<bs> /= ' \ : search('<\%#', 'bcn') ? '<bs> <= ' \ : search('>\%#', 'bcn') ? '<bs> >= ' \ : search('&\%#', 'bcn') ? '<bs> &= ' \ : search('%\%#', 'bcn') ? '<bs> %= ' \ : search('^\%#', 'bcn') ? '<bs> ^= ' \ : search('!\%#', 'bcn') ? '<bs> != ' \ : search('<bar>\%#', 'bcn') ? '<bs> <bar>= ' \ : smartchr#one_of(' = ', ' == ', '=') inoremap <expr> } smartchr#one_of('}', '}<cr>') inoremap <expr> ; smartchr#one_of(';', ';<cr>') inoremap <expr> @ search('^\(#.\+\)\?\%#','bcn')? smartchr#one_of('#define', '#include', '@'): '@'
これで'+'は'+'のままで'+='は' += 'のようになり, 幸せになれる.
もっといい書き方が有ればおしえてください.