2016-11-20 34 views
1

我想我的quickfix窗口有一些突出遊標的當前行。指針強調到quickfix窗口:QuickFixCmdPre覆蓋QuickfixCmdPost?

經過一番研究,我發現我可以使用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() 

感謝您的閱讀。 :)

回答

3

您的方法有很多問題,但主要的問題(以及它不起作用的原因)是,在切換到錯誤窗口之前,每個quickfix命令都會運行QuickFixCmdPreQuickFixCmdPost。您迴應

highlight CursorLine term=bold cterm=bold guibg=Grey40 
+0

嘿,感謝:

這個添加到文件ftplugin/qf.vim

setlocal cursorline 

然後highlight定義添加到您的vimrc,任何功能或autocmd之外。所以,我理解正確的是qf.vim是應該包含圍繞的quickfix窗口的所有設置一個特殊的文件?命名包含此文件ftplugin的文件夾是否約定?無論如何,您的解決方案完美無缺,謝謝! – AvantiC