我想在vim中的活动分割和非分割之间更改光标线的颜色。
所以我尝试了
augroup CursorLine
au!
au VimEnter,WinEnter,BufWinEnter * highlight CursorLine ctermfg=black ctermbg=green
au WinLeave * highlight CursorLine ctermfg=NONE ctermbg=red
augroup END
然后我打开vim,进行垂直拆分:vsp file
,然后在两个拆分之间切换,但是两个窗格仍然具有绿色背景,并且不活动的窗格在离开时没有切换为红色。
这些命令怎么了?
答案 0 :(得分:1)
突出显示组的作用域是全局的。如果更改颜色或一种的格式,则所有事件将被更新(在下一个屏幕上重画)。为了支持活动/非活动元素的不同突出显示,您需要为此提供Vim的明确支持。对于状态行(以hl-StatusLine
与hl-StatusLineNC
高亮组的形式)确实存在,但光标线则不存在。
在您的情况下,WinLeave
autocmd将立即在下一个窗口后接WinEnter
,因此您尝试更改为红色基本上会被忽略。
如果您想禁用非活动窗口的光标线,则可以这样做,因为'cursorline'
选项是本地窗口选项。我的CursorLineCurrentWindow plugin确实很容易。