[英]How can I show COMMAND mode in statusline when entering command-line mode ( “ : ” ) on VIM?
[英]In Vim, how can I change the color of the StatusLine when I'm in Command Line mode?
我正在使用 Vim 8.2。 当我使用/
和:
进入命令行模式时,我想更改StatusLine
的颜色。
我的.vimrc
中有以下内容。 应该改变当前 window 和非当前 windows 的StatusLine
的背景和前景 colors
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
这有点工作,但只有当我用/
进入命令行模式然后输入一些东西时。 当我使用:
进入命令行模式时,它不起作用。
我玩过上面的代码片段,分别用CmdlineEnter
和CmdwinLeave
代替CmdwinEnter
和CmdlineLeave
; 而且我也尝试过CmdlineChanged
,但是当使用:
和/
进入命令行模式时,我无法立即更改StatusLine
的颜色。
有任何想法吗?
不幸的是,控制状态行的突出显示并不是那么简单。
这是一个 hack,当您进入/离开命令行时,它会更改每个window 的状态行突出显示:
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
不过,我不确定如何更改它,以便仅突出显示当前 window 的状态行。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.