我想有第二颜色亮点的Vim,简约的方式做的就是使用:match,:2match或:3match命令:
:match TODO /pattern/
Run Code Online (Sandbox Code Playgroud)
TODO是亮点组;图案将像 一样突出显示':/'。
我很难弄清楚如何去除颜色。
据我所知,没有用于此目的的命令,但您可以使用clearmatches()和matchdelete()函数。
clearmatches()将删除所有匹配项:
:call clearmatches()
Run Code Online (Sandbox Code Playgroud)
并matchdelete()删除特定的匹配实例;您可以从以下位置获取 ID getmatches():
:for m in filter(getmatches(), { i, v -> l:v.group is? 'TODO' })
: call matchdelete(m.id)
:endfor
Run Code Online (Sandbox Code Playgroud)
您还可以过滤匹配项,例如与pattern键匹配的模式。命令:Unmatch可能如下所示:
command! -nargs=1 Unmatch
\ for m in filter(getmatches(), { i, v -> l:v.group is? <q-args> })
\| call matchdelete(m.id)
\| endfor
Run Code Online (Sandbox Code Playgroud)
您可以:match TODO /pattern/使用:match none或 仅撤消命令:match。其他:2match和:3match变体相同。
通用matchdelete()函数通常在脚本中用于撤消通过:matchadd(). 当您以交互方式使用这些命令时(对于一组有限的匹配项),我不建议您切换到它们。