vim 搜索 - 为光标下的文本设置不同的颜色

The*_*ere 5 search vim colors

假设 vim 搜索在我的文件中找到 5 个匹配项。我看到所有 5 个匹配项都以黄色突出显示。我通过按在这些之间循环n。但是,当我的光标从一场比赛移动到下一场比赛时,高光都保持相同的颜色。这使得很难看到我的光标所在的匹配项。有没有办法告诉 vim 用一种颜色突出显示所有匹配项,如果使用 访问匹配项,则为n当前访问的匹配项着色不同的颜色?

Ing*_*kat 1

没有内置选项可以以不同的方式突出显示当前内容。创建搜索时,您可以选择'incsearch',但仅此而已。

您可以在搜索突出显示之上使用另一种突出显示,例如使用:match; 特殊的\%#正​​则表达式原子将匹配限制为当前光标位置:

:execute 'match IncSearch /\%#' . @/ . '/'
Run Code Online (Sandbox Code Playgroud)

这样做的问题是,只要当前搜索模式 ( @/) 发生变化,就需要调整突出显示(哦,它不处理像 那样的搜索偏移量/foo/e-1)。因此,您需要覆盖所有与搜索相关的命令(/*等)以将:match命令挂接到其中。我不会推荐这个。