quickfix窗口中当前所选行的突出显示组是什么?
quickfix窗口中的选定行使用Search
进行突出显示。我想继续使用黄色进行Search
突出显示,但使用蓝色进行快速修复选定的行。
答案 0 :(得分: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>
答案 1 :(得分:3)
Ingo Karkat的回答是正确的。它在vim代码中确实是硬编码的。 我为vim8创建了一个补丁 - QuickFixCurrentLine.patch。
补丁很长,可以在这里发布。此外,它还有标签和空格的混合。所以,提供仅链接答案。
编辑: 这个补丁已经在最新的vim代码中被提升了 突出显示的名称已更改为quickfixline而不是quickfixcurrentline。