quickfix-window 中的光标突出显示:QuickFixCmdPre 覆盖 QuickfixCmdPost?

Cursor-highlighting in quickfix-window: QuickFixCmdPre overriding QuickfixCmdPost?

我希望我的 quickfix-window 能够突出显示光标的当前行。

经过一些研究,我发现我可以使用 set cursorlinehighlight CursorLine term=bold cterm=bold guibg=Grey40 配置当前行的一般外观。

现在,我只在快速修复时才需要它-window。所以我开始将这两行包装在一个函数中并使用自动命令调用该函数:

au QuickFixCmdPre * call EnableSearchHighlighting()

到目前为止,还不错。由于我至少搜索一次后仍然激活了突出显示,因此我需要再次禁用该效果。 这就是我卡住的地方...

我为 set nocursorline 编写了另一个函数,并在 QuickFixCmdPost-Event 上调用了这个函数。但出于某种原因,这打破了一切。现在我不会再突出显示了,即使在 quickfix-window.

中也不行

感觉像是 Post-Event 覆盖了 Pre-Event。 我不确定在这里还能尝试什么。

也许任何人都可以帮助我,甚至有另一种突出显示的方法?

这是我的 .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()

感谢阅读。 :)

你的方法有很多问题,但最主要的(也是它不起作用的原因)是 QuickFixCmdPreQuickFixCmdPost 对于之前的每个 quickfix 命令都是 运行你可以切换到错误 window.

将此添加到文件 ftplugin/qf.vim:

setlocal cursorline

然后将 highlight 定义添加到您的 vimrc 中,在任何函数之外或 autocmd:

highlight CursorLine term=bold cterm=bold guibg=Grey40