我正在使用 Vim 8.2。当我使用
StatusLine
和/
进入命令行模式时,我想更改:
的颜色。
我的
.vimrc
中有以下内容。应该改变当前窗口和非当前窗口StatusLine
的背景和前景色
augroup InsertHook
autocmd!
" enter command line mode
autocmd CmdlineEnter * hi StatusLine gui=bold guifg=#7386A7 guibg=#FFE847
autocmd CmdlineEnter * hi StatusLineNC gui=NONE guifg=#FFE847 guibg=#9EA8BA
" leave command line mode
autocmd CmdlineLeave * hi StatusLine gui=bold guifg=#EFEEC9 guibg=#7386A7
autocmd CmdlineLeave * hi StatusLineNC gui=NONE guifg=#DFDBC5 guibg=#9EA8BA
augroup END
这有点管用,但只有当我使用
/
进入命令行模式,然后输入一些内容时。当我使用 :
. 进入命令行模式时它不起作用
我玩过上面的代码片段,分别用
CmdwinEnter
和 CmdwinLeave
代替 CmdlineEnter
和 CmdlineLeave
;并且我也尝试过CmdlineChanged
,但是当使用StatusLine
和:
进入命令行模式时,我无法让/
的颜色立即改变。
有什么想法吗?
不幸的是,控制状态行的突出显示并不是那么简单。
这里有一个 hack,可以在您进入/离开命令行时更改every窗口的状态行高亮显示:
hi CmdlineEnter ctermbg=green ctermfg=white
hi CmdlineLeave ctermbg=blue ctermfg=white
augroup cmd
autocmd!
autocmd CmdlineEnter * let &statusline = '%#CmdlineEnter#%f'
autocmd CmdlineLeave * let &statusline = '%#CmdlineLeave#%f'
augroup END
我不确定如何更改它,以便它只突出显示当前窗口的状态行。