我已经在我的 vimrc 中设置了 `cursorline`。是否有办法使 vim 只在当前活动缓冲区中高亮显示当前行,而不是所有缓冲区?
BufEnter
/ BufLeave
钩子在移动到显示相同缓冲区的相邻窗口时不会触发。我已经成功使用以下方法:
augroup CursorLine
au!
au VimEnter,WinEnter,BufWinEnter * setlocal cursorline
au WinLeave * setlocal nocursorline
augroup END
au BufEnter * setlocal cursorline
au BufLeave * setlocal nocursorline
在Zsolt的回答中,我想补充一点:
au WinLeave * setLocal nocursorline
:autocmd
解决方案的缺点在于,您无法像禁用特定窗口的光标行或将其永久应用于(另一个)窗口一样进行例外处理。任何对'cursorline'
的更改都将被下一个移动到另一个窗口的操作覆盖。