如何设置 vim 增量搜索突出显示颜色不同于现有搜索匹配颜色

How to set vim incremental search highlight color different from existing search match color

我希望 vim 在我输入“/”后立即开始突出显示匹配项。但是那个突出显示的颜色应该与现有匹配的颜色不同。

例如,我有以下文本:

foo bar baz

此序列结束后:

/foo<return>/bar

(请注意,此序列是在正常模式下键入的,并且在序列末尾没有按 <return>

foo 应该用一种颜色突出显示(称之为 "found match" 颜色),bar 应该用另一种颜色突出显示(增量搜索颜色)。

您不能使用内置搜索来执行此操作。 Vim 将始终使用 IncSearch 突出显示 下一个 匹配项,并使用 Search 突出显示组突出显示所有其他匹配项(具有相同的当前键入的模式) (假设你有 :set hlsearch incsearch)。

如果你想保留之前的匹配,你必须定义你自己的突出显示,例如像这样(仅限当前 window):

:hi def link PreviousSearch MoreMsg " Define some different highlight group based on some existing one.
:execute 'match PreviousSearch /' . @/ . '/'

插件推荐

如果您需要多个并发匹配,并且需要一个涵盖所有 windows 和选项卡(以及许多额外功能)的更强大的实现,请查看我的 Mark plugin。 (插件页面有指向其他插件的链接。)