vim:突出显示选中的行,其颜色与“搜索”不同

时间:2012-11-04 15:45:11

标签: vim

quickfix窗口中当前所选行的突出显示组是什么?

quickfix窗口中的选定行使用Search进行突出显示。我想继续使用黄色进行Search突出显示,但使用蓝色进行快速修复选定的行。

2 个答案:

答案 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。