結論
以下のコードを.vimrc
に追記する。
.vimrc
augroup InsertHook
autocmd!
autocmd InsertEnter * hi Normal ctermbg=235 "挿入モード時の色
autocmd InsertLeave * hi Normal ctermbg=0 "通常モード時の色
augroup END
ちょっとした解説
autocmd
の指定で、InsertEnter
は挿入モードになるとき、InsertLeave
は挿入モードから抜けるとき、それぞれ自動でhi
(highlight
)コマンドで色を変更する。*
の部分では、すべてのファイルにマッチするようにしているため、*.c
とすれば、cファイルにのみ適応なども可能。Normal
は全体的に変わる模様。
ctermbg
は色つきターミナルでの背景色。前景色(つまり文字色)はctermfg
になる。GVimの場合はguibg
とguifg
になる。背景色と文字色とを一緒に変更することも可能。
autocmd
の詳細はautocmd - Vim日本語ドキュメントを参照。hi[ghlight]
コマンドに関しては、syntax - Vim日本語ドキュメントで。
色指定に関しては、ANSI Color Specific RGB Sequence Bash - Stack Overflowを参考にした。サンプルでは、色つきターミナルでの256色指定を用いている。
他にしたこと
環境によっては、挿入モードを抜けた際に、すぐに切り替わらないので、以下も追記した。
.vimrc
if has('unix')&& !has('gui_running')
inoremap <silent><ESC><ESC>endif
参考文献
vim/gvimの色設定について - fudist
autocmd - Vim日本語ドキュメント
syntax - Vim日本語ドキュメント
ANSI Color Specific RGB Sequence Bash - Stack Overflow
おさらい autocmd/augroup - Qiita (@s_of_pさん)