在vim中是否有一种方法可以只在可视模式下更改搜索文本的高亮颜色?

zbwhf8kr  于 2022-11-11  发布在  其他
关注(0)|答案(1)|浏览(164)

(我使用的是nord-vim配色方案,但这是我在vim中尝试过的所有配色方案的问题,我正在寻找需要更改哪些设置才能实现预期目标)
我在vim中遇到了一个问题,如果我进行搜索,搜索匹配的高亮文本颜色与视觉模式背景颜色相同,因此如果我搜索一些文本,然后视觉选择包含一个或多个搜索结果的一些文本行,文本会消失。它会这样做是因为视觉模式更改了背景颜色,而不是文本颜色,这是所需的行为。除了在搜索结果的情况下,我想改变文本的颜色,但只有在视觉模式。
这在vim中是可能的吗?
示例:
(do搜索某个文本,并将其突出显示)x1c 0d1x
(可视地选择包含搜索结果的几行文本)

我希望它如果搜索结果改变文本颜色到一些其他可区分的颜色,以表明他们是搜索结果,但只有在视觉模式。

ddrv8njm

ddrv8njm1#

遗憾的是,这一点没有记录在案,但它确实发生了,因此一些突出显示组(如Visual)相对于其他组(如Search)具有某种优先级:

hi Visual cterm=NONE ctermbg=cyan   ctermfg=black
hi Search cterm=NONE ctermbg=yellow ctermfg=black

AFAIK,明确提高高亮组优先级的唯一方法是将其cterm/gui属性设置为reverse,并交换*fg*bg属性:

hi Visual cterm=NONE    ctermbg=cyan  ctermfg=black
hi Search cterm=reverse ctermbg=black ctermfg=yellow

但即使这样,您也会注意到,在与Visual交互时,只有reverse位有一些影响,Search的颜色属性完全被忽略,这可能令人满意,也可能不令人满意。
This gist说明如何最好地覆盖突出显示组。

相关问题