我试图改善我的 vim 体验,试图在每次模式更改时更改 vim 状态行颜色。
我试过这个:(在这里找到)
"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
Run Code Online (Sandbox Code Playgroud)
...包括:
set statusline+=%{ChangeStatuslineColor()}
Run Code Online (Sandbox Code Playgroud)
但是有一个问题,如果你切换到插入模式,然后按 Esc 键回到正常模式,它不会改变颜色。只有当您手动进入不同的模式时,它才会变回颜色。
vim ×1