我在我的 vimrc 中设置了 cursorline。有没有办法让 vim 只突出显示活动缓冲区中的当前行而不是所有缓冲区?
问问题
1788 次
4 回答
22
Zsolt 的答案中使用的BufEnter
/BufLeave
钩子的问题是,当移动到显示相同缓冲区的相邻窗口时它们不会触发。我已成功使用以下内容:
augroup CursorLine
au!
au VimEnter,WinEnter,BufWinEnter * setlocal cursorline
au WinLeave * setlocal nocursorline
augroup END
于 2012-08-18T12:28:38.963 回答
7
你可以试试:
au BufEnter * setlocal cursorline
au BufLeave * setlocal nocursorline
于 2012-08-18T09:29:49.123 回答
3
To Zsolt's answer I would add:
au WinLeave * setLocal nocursorline
This improves the behavior when moving between two windows on the same buffer.
于 2012-08-18T10:51:46.360 回答
3
这里所有简短:autocmd
解决方案的弱点是您不能例外,例如禁用特定窗口的光标线或使其永久用于(另一个)窗口。任何更改都'cursorline'
将被下一次移动到另一个窗口所覆盖。
我的CursorLineCurrentWindow 插件通过更精细的逻辑处理这些异常。
于 2012-08-18T20:40:32.417 回答