모드가 바뀔 때마다 vim 상태 표시 줄 색상을 변경하려고 시도하면서 vim 환경을 개선하려고했습니다.
나는 이것을 triend했습니다 : ( 여기 에서 찾았 습니다 )
"Automatically change the statusline color depending on mode
function! ChangeStatuslineColor()
if (mode() =~# '\v(n|no)')
exe 'hi! StatusLine ctermfg=008'
elseif (mode() =~# '\v(v|V)' || g:currentmode[mode()] ==# 'V·Block' || get(g:currentmode, mode(), '') ==# 't')
exe 'hi! StatusLine ctermfg=005'
elseif (mode() ==# 'i')
exe 'hi! StatusLine ctermfg=004'
else
exe 'hi! StatusLine ctermfg=006'
endif
return ''
endfunction
... 포함 :
set statusline+=%{ChangeStatuslineColor()}
그러나 문제가 있습니다. insert
모드로 전환 한 다음을 눌러 모드 Esc
로 돌아 오면 normal
색상이 바뀌지 않습니다. 다른 모드를 수동으로 입력 한 경우에만 색상이 다시 변경됩니다.