Help us understand the problem. What is going on with this article?

Vimの挿入モードで背景色を変える

More than 1 year has passed since last update.

結論

以下のコードを.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の場合はguibgguifgになる。背景色と文字色とを一緒に変更することも可能。

autocmdの詳細はautocmd - Vim日本語ドキュメントを参照。hi[ghlight]コマンドに関しては、syntax - Vim日本語ドキュメントで。

色指定に関しては、ANSI Color Specific RGB Sequence Bash - Stack Overflowを参考にした。サンプルでは、色つきターミナルでの256色指定を用いている。

他にしたこと

2018/11/27 変更

環境によっては、挿入モードを抜けた際に、すぐに切り替わらないので、以下も追記した。

.vimrc
set ttimeoutlen=0

これはタイムアウトが有効になっている場合に、設定も有効になる。タイムアウトは、

set timeout? ttimeout?

のどちらかがオンになていれば、有効である。

vim/gvimの色設定について - fudistでは、以下の設定が紹介されているが、挿入モード中のカーソルキーなどが使えなくなる場合があるため、上記の設定がうまく行かなかった場合に試すとよさそう。

.vimrc
if has('unix') && !has('gui_running')
    inoremap <silent> <ESC> <ESC>
endif

@h_east さんのコメント( https://qiita.com/L_Y/items/81395569675d7e55861d#comment-86a57f86855ab1278d7c )より。情報ありがとうございました。

参考文献

vim/gvimの色設定について - fudist
autocmd - Vim日本語ドキュメント
syntax - Vim日本語ドキュメント
options - Vim日本語ドキュメント
ANSI Color Specific RGB Sequence Bash - Stack Overflow
おさらい autocmd/augroup - Qiita (@s_of_p さん)

Why do not you register as a user and use Qiita more conveniently?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away