我希望我的quickfix-window能够对当前光标行进行一些突出显示。
经过一些研究后,我发现我可以使用set cursorline
和highlight CursorLine term=bold cterm=bold guibg=Grey40
来配置当前行的一般外观。
现在,当我在quickfix窗口时,我只想要它。所以我开始在函数中包含这两行,并使用自动命令调用该函数:
au QuickFixCmdPre * call EnableSearchHighlighting()
到目前为止,这么好。因为我在搜索至少一次之后仍然激活突出显示,我需要再次禁用该效果。 这就是我被困的地方 ......
我只为set nocursorline
写了另一个函数,并在QuickFixCmdPost
- 事件中调用了这个函数。但由于某种原因,这打破了一切。现在我不再重复突出显示了,甚至在quickfix窗口中也没有。
感觉后事件会覆盖事件前的事件。 我不知道还有什么可以尝试。
也许任何人都可以帮助我,甚至可以采用另一种方法来突出显示?
以下是我的.vimrc中的完整代码:
function EnableSearchHighlighting()
set cursorline
highlight CursorLine term=bold cterm=bold guibg=Grey40
endfunction
function DisableSearchHighlighting()
set nocursorline
endfunction
au QuickFixCmdPre * call EnableSearchHighlighting()
au QuickFixCmdPost * call DisableSearchHighlighting()
感谢阅读。 :)
答案 0 :(得分:3)
您的方法存在许多问题,但主要问题(以及它不起作用的原因)是在您切换之前为每个quickfix命令运行QuickFixCmdPre
和QuickFixCmdPost
到错误窗口。
将其添加到文件ftplugin/qf.vim
:
setlocal cursorline
然后将highlight
定义添加到vimrc
,任何函数之外或autocmd
:
highlight CursorLine term=bold cterm=bold guibg=Grey40