2012-11-04 83 views

回答

4

當前選擇的quickfix項目被硬編碼爲Search。您必須更改Vim源代碼並重新編譯才能更改。

我看到只有有限的方法來解決這個與Vimscript。您可以嘗試通過:match/matchadd()(它具有更高的優先級)覆蓋當前行的突出顯示,但它只會覆蓋文本的長度,而不是整個行的原始突出顯示。另外,我認爲當前選擇的項目不能從Vim輕鬆查詢,因此您必須掛接到quickfix-local <CR>映射來更新它,並停止使用:cnext等來移動到不同的錯誤。

:highlight BlueLine guibg=Blue 
:autocmd BufReadPost quickfix match BlueLine /\%1l/ 
:autocmd BufReadPost quickfix nnoremap <buffer> <CR> :execute 'match BlueLine /\%' . line('.') . 'l/'<CR><CR> 
+0

_」當前選定的quickfix項目被硬編碼爲搜索「_你知道它被硬編碼到'Search'的位置嗎?因此,由於vim8已經出來,我正在編譯它,我以爲我可以做這些改變... – anishsane

+0

^^明白了......需要搜索一個地方上傳補丁... – anishsane

+0

@anishsane啊,太棒了;我只是自己搜索源代碼。如果補丁很短,只需添加自己的答案,然後放在那裏。或者,將其作爲Gist發佈,然後在此處添加帶有URL的評論。 –

2

Ingo Karkat的回答是對的。它的確在vim代碼中被硬編碼。 我爲vim8創建了一個補丁 - QuickFixCurrentLine.patch

修補程序足夠長,可以在此發佈。另外,它有標籤和空格的混合。所以,提供一個只有鏈接的答案。

編輯: 這個補丁已經在最新的vim代碼中得到了成長。
突出顯示的名稱已更改爲quickfixline而不是quickfixcurrentline。 「

+0

你有沒有想過提交這個上游? (編輯:我看你是 - https://github.com/vim/vim/issues/1080)。 – wincent

相關問題