Vim はモードが有るので、それが視覚的に区別できると編集しやすい
そこで私は「vim/gvimの色設定について―挿入モードでステータスラインの色を変更する」を参考にステータス・ラインとターミナルで使用している時はタブ・ラインも変えている
なおステータス・ラインでなくタブ・ラインでは StatusLine→TabLine, TabLineFill, TabLineSel の 3 つを使えば良い。
ただここでこのサイトに有る設定そのままでは、「インサートモードに入ったときの遅延読み込みによる影響」に有る通り、挿入モードのタイミングで遅延読み込みしているプラグインが有ると上手くいかない。これは遅延読み込みにより、InsertEnter が複数発生するためで仕様となる。
逆に言えば、同じモードでは無視すれば良いので、私は数行追加して次の要領で使っている。
let g:hi_insert = 'highlight StatusLine gui=bold guifg=white guibg=darkred cterm=bold ctermfg=white ctermbg=Red' " 挿入モード時のスタイル好みによって変えて
if has('syntax')
augroup InsertHook
autocmd!
autocmd InsertEnter * call s:StatusLine('Enter')
autocmd InsertLeave * call s:StatusLine('Leave')
augroup END
endif
let s:slhlcmd = ''
let s:mode= ''
function! s:StatusLine(mode)
if s:mode == a:mode
return
endif
silent! let s:mode = a:mode
if a:mode == 'Enter'
silent! let s:slhlcmd = 'highlight ' . s:GetHighlight('StatusLine')
silent exec g:hi_insert
else
highlight clear StatusLine
silent exec s:slhlcmd
endif
endfunction
function! s:GetHighlight(hi)
redir => hl
exec 'highlight '.a:hi
redir END
let hl = substitute(hl, '[\r\n]', '', 'g')
let hl = substitute(hl, 'xxx', '', '')
return hl
endfunction