Vim - 更改当前快速修复行的高亮显示。(QuickFixLine)

3
如何更改QuickFixLine的高亮显示,以便在一行中具有多个高亮显示?例如:

而不是像这样突出整行: Quickfix window with currently highlighted line

将快速修复突出显示的前景色更改为此: How I would like it to be

我该如何实现这个效果?


1
我猜你所说的“绿色”和“白色”指的是非当前行相同的颜色,是这样吗? - Enlico
这只是一个例子,我指的是任何形式的高亮显示。 - DasOhmoff San
1
你不可以。这是一个单一的高亮组。你只能让它变成加粗或反转等,其他高亮组(例如qfFileName或qfLineNr)将保留它们自己的颜色。 - Matt
现在执行 :hi QuickFixLine 命令会告诉你什么?(你可以使用 :put =execute('hi QuickFixLine') 将其粘贴到 Vim 缓冲区中,这样更容易复制并在此处粘贴。) - filbranden
你使用的配色方案是什么? - filbranden
@filbranden,我使用的是“onedark”(经过我的大量定制)。这是输出结果:QuickFixLine xxx ctermfg=235 ctermbg=180 guibg=#334659(顺便说一下,它不是你在图片中看到的样式)。但是话题已经关闭了,无论如何还是谢谢。 - DasOhmoff San
1个回答

3

通常情况下,您无法使用QuickFixLine在同一行上创建多个高亮。

然而,QuickFixLine会在快速修复窗口中已经存在的高亮之上应用(由语法规则定义)。

因此,只要不触及语法规则分配的特定属性(在本例中为前景色),并且只触及其他属性(在本例中为背景色和设置文本粗体),您就可以实现所需的效果。

例如,应用此命令应该可以达到您想要的效果:

:hi QuickFixLine ctermfg=NONE cterm=bold guifg=NONE gui=bold

您可以通过在vimrc中添加规则来使其永久生效,以在应用配色方案更改后应用该更改:

augroup vimrc_colors
  au!
  au ColorScheme * hi QuickFixLine ctermfg=NONE cterm=bold guifg=NONE gui=bold
augroup END

看起来你已经在使用自定义主题,因此你可能想考虑修改它,不要设置前景色而是设置粗体属性:

hi QuickFixLine
   \ ctermbg=180 cterm=bold
   \ guibg=#334659 gui=bold

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