vim:高亮显示颜色不同于'的quickfix选定行;搜索';

vim:高亮显示颜色不同于'的quickfix选定行;搜索';,vim,Vim,“快速修复”窗口中当前选定行的突出显示组是什么 快速修复窗口中的选定行使用搜索高亮显示。我想继续使用黄色突出显示搜索,但使用蓝色突出显示quickfix选定行。当前选定的quickfix项目已硬编码为搜索。您必须更改Vim源代码并重新编译才能更改此代码 我只看到使用Vimscript解决此问题的有限方法。您可以尝试通过:match/matchadd()(它具有更高的优先级)覆盖当前行的突出显示,但它只覆盖文本的长度,而不覆盖原始突出显示的整行。此外,我认为当前选择的项目无法从Vim轻松查询,因此

“快速修复”窗口中当前选定行的突出显示组是什么


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

当前选定的quickfix项目已硬编码为
搜索
。您必须更改Vim源代码并重新编译才能更改此代码

我只看到使用Vimscript解决此问题的有限方法。您可以尝试通过
:match
/
matchadd()
(它具有更高的优先级)覆盖当前行的突出显示,但它只覆盖文本的长度,而不覆盖原始突出显示的整行。此外,我认为当前选择的项目无法从Vim轻松查询,因此您必须挂接quickfix本地
映射来更新它,并停止使用
:cnext
等移动到不同的错误

:highlight BlueLine guibg=Blue
:autocmd BufReadPost quickfix match BlueLine /\%1l/
:autocmd BufReadPost quickfix nnoremap <buffer> <CR> :execute 'match BlueLine /\%' . line('.') . 'l/'<CR><CR>
:高亮显示蓝线guibg=Blue
:autocmd BufReadPost快速修复匹配蓝线/\%1l/
:autocmd BufReadPost quickfix nnoremap:执行“匹配蓝线/\%”。行('.')。'l/'

Ingo Karkat的答案是正确的。它确实是用vim代码硬编码的。 我已经为vim8创建了一个补丁

补丁足够长,可以发布在这里。此外,它还混合了制表符和空格。所以,只提供一个链接的答案

编辑: 在最新的vim代码中,该修补程序已升级。

突出显示的名称已更改为quickfixline,而不是quickfixcurrentline。

“当前选定的quickfix项目已硬编码为搜索”您知道它硬编码为搜索的位置吗?既然vim8已经发布,我正在编译它,我想我可以做些改变…@anishsane啊,太好了;我只是自己在搜索源代码。如果补丁很短,只需添加您自己的答案,并将其放在那里。或者,作为一个要点发布,并在这里添加一条带有URL的评论。这里是:有没有一种方法可以建议升级到vim8的补丁?它可以帮助其他人。除此之外,他们还可以审查和放弃;您的补丁看起来不错(只缺少一个文档更新),我绝对欢迎在Vim中加入它。谢谢你的努力!你有没有想过向上游提交这封信?(编辑:我知道你这么做了)。