8
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

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

Last updated at Posted at 2018-11-26

#結論

以下のコードを.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 さん)

8
5
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?