行番号の色を変更するために、小さなスクリプトを使用して挿入モードをトリガーします。
function! CursorLineNrColorInsert(mode)
" Insert mode: blue
if a:mode == "i"
highlight CursorLineNr ctermfg=4
highlight CursorLineNr guifg=#268bd2
" Replace mode: red
elseif a:mode == "r"
highlight CursorLineNr ctermfg=1
highlight CursorLineNr guifg=#dc322f
else
highlight CursorLineNr ctermfg=0
highlight CursorLineNr guifg=#073642
endif
endfunction
autocmd InsertEnter * call CursorLineNrColorInsert(v:insertmode)
autocmd InsertLeave * highlight CursorLineNr ctermfg=0
autocmd InsertLeave * highlight CursorLineNr guifg=#073642
これは非常にうまく機能し、挿入モードに入るとすぐに行番号が変更され、通常モードでは元の色に戻ります。
ビジュアルモードでも同じことをしたいと思います。
function! CursorLineNrColorVisual(mode)
" Visual mode: orange
if mode()=~#"^[vV\<C-v>]"
highlight CursorLineNr ctermfg=9
highlight CursorLineNr guifg=#cb4b16
else
highlight CursorLineNr ctermfg=0
highlight CursorLineNr guifg=#073642
endif
endfunction
autocmd CursorMoved * call CursorLineNrColorVisual(mode())
基本的には機能しますが、関数がでトリガーされるため、すぐには機能しませんCursorMoved
。ビジュアルモードをアクティブにするとすぐCursorLineNrColorVisual()
に発砲するにはどうすればよいですか?