vim:如何使用不同于“搜索”颜色的颜色突出显示快速修复选定行?

6

快速修复窗口中当前选定行的高亮组是什么?

快速修复窗口中选定的行使用Search进行高亮显示。我想继续使用黄色来进行Search高亮显示,但是在快速修复选定行中使用蓝色。

2个回答

5
Ingo Karkat的回答是正确的。这确实是硬编码在vim代码中的。 我已经创建了一个补丁-QuickFixCurrentLine.patch,适用于vim8。
补丁太长了,无法在此处发布。而且,它混合使用了制表符和空格。因此,只提供链接作为答案。
编辑: 该补丁已经被纳入最新的vim代码中。 高亮的名称已更改为quickfixline,而不是quickfixcurrentline。

你有没有把这个提交到上游呢?(编辑:我看到你已经提交了 - https://github.com/vim/vim/issues/1080)。 - Greg Hurrell

4

当前选择的快速修复项目被硬编码为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>

当前选择的快速修复项目是硬编码为“搜索”。你知道它在哪里被硬编码为“搜索”吗?因此,由于vim8已经发布并且我正在编译它,我想我可以进行更改... - anishsane
@anishsane 哦,太好了;我刚刚在浏览源代码。如果补丁很短,只需添加您自己的答案并将其放在那里即可。或者,发布为Gist,并在此处添加URL的评论。 - Ingo Karkat
1
这是:QuickFixCurrentLine.patch - anishsane
有没有一种方法可以建议将补丁上游到vim8?这可能会帮助其他人。否则,他们可以审查并丢弃。 - anishsane
Vim的问题跟踪器在这里:https://github.com/vim/vim/issues;你的补丁看起来很不错(只缺少文档更新),我肯定会欢迎将其包含在Vim中。感谢你的努力! - Ingo Karkat
对于初步审核,发布Gist的链接就可以了。他们之后可能会要求你创建一个拉取请求,但我认为他们也可以直接使用你的补丁。 - Ingo Karkat

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接