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

时间:2016-11-20 18:24:12

标签: vim vim-quickfix

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

经过一些研究后,我发现我可以使用set cursorlinehighlight 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()

感谢阅读。 :)

1 个答案:

答案 0 :(得分:3)

您的方法存在许多问题,但主要问题(以及它不起作用的原因)是在您切换之前为每个quickfix命令运行QuickFixCmdPreQuickFixCmdPost到错误窗口。

将其添加到文件ftplugin/qf.vim

setlocal cursorline

然后将highlight定义添加到vimrc,任何函数之外或autocmd

highlight CursorLine term=bold cterm=bold guibg=Grey40