Terminal Vim中光标下的单词高亮显示*和*多重高亮显示

Terminal Vim中光标下的单词高亮显示*和*多重高亮显示,terminal,syntax-highlighting,vim,vim-plugin,Terminal,Syntax Highlighting,Vim,Vim Plugin,我目前正在使用两个插件,它们独立地工作得很好,但彼此之间有轻微的干扰: 及 这两个插件似乎使用了类似的方法,导致高亮显示样式相互干扰 我将光标下单词的高光设置为仅在单词下方加下划线(我尝试将其加粗,但这太微妙了,太容易忽略),而不改变其颜色或任何内容。由于所有单词都继续使用语法高亮显示的颜色,因此它本身的效果非常好 但是,一旦同时启用了标记,标记单词的突出显示将被光标“单词突出显示”覆盖。由于高光的属性不相交,因此理论上可以使标记高光保持不变,并且当光标位于其中任何一个上时,除了已应用的任何

我目前正在使用两个插件,它们独立地工作得很好,但彼此之间有轻微的干扰:

这两个插件似乎使用了类似的方法,导致高亮显示样式相互干扰

我将光标下单词的高光设置为仅在单词下方加下划线(我尝试将其加粗,但这太微妙了,太容易忽略),而不改变其颜色或任何内容。由于所有单词都继续使用语法高亮显示的颜色,因此它本身的效果非常好

但是,一旦同时启用了标记,标记单词的突出显示将被光标“单词突出显示”覆盖。由于高光的属性不相交,因此理论上可以使标记高光保持不变,并且当光标位于其中任何一个上时,除了已应用的任何其他样式外,还应获得下划线

考虑到这些插件使用
matchadd()
,这是一种可能性吗?是否只需将此功能添加到Mark插件中,以便我们可以复用突出显示样式,从而同时对3样式进行分层?最大的问题是,是否有可能同时对3种样式进行分层

(我知道第二层是可能的,因为例如HiCursorWords可以在注释中的单词下面划线,这会导致单词(我将注释设置为斜体)变为斜体并加下划线;例如,使用Mark,注释中标记的单词会高亮显示(背景色更改,前景色更改,并保持斜体)--问题是,我们是否可以同时应用这两种方法,以便在光标位于注释词上并进行标记时,使注释词的背景/前景颜色发生变化、带下划线,并且仍然是斜体?)

编辑:似乎
matchadd()
将简单地覆盖
matchadd()
之前设置的任何样式。因此,如果我能让HiCursorWords插件检查这个单词是否已经被Mark突出显示,那么它就可以设置一个特殊的第三种样式(同时突出显示和加下划线)。希望有办法

此外,我注意到
/
搜索突出显示样式覆盖了所有其他
匹配添加
突出显示。因此,highlight一词中的下划线将被它覆盖。如果我也能在这种情况下显示下划线,那就太好了。

你说得对,没有突出显示组的分层。您基本上拥有来自语法插件的突出显示,
matchadd()
,以及当前的搜索模式。(有一个挂起的补丁,允许使用
:syntax
命令添加/删除属性;您可以在上找到讨论。)

由于HiCursorWords插件使用类似于标记的
matchadd()
,您可以尝试我的替代方法,它也提供光标下单词的高亮显示,但使用默认的搜索高亮显示

说到搜索高亮显示和
matchadd()
,您可以通过
matchadd()
的可选
{priority}
参数(必须大于0才能位于顶部)来影响哪个位于顶部