如何从Vim的match()函数中删除颜色突出显示

时间:2018-09-12 22:07:07

标签: vim

我试图在Vim中使第二个颜色突出显示, 简单的方法是使用:match:2match:3match命令:

:match TODO /pattern/

TODO是突出显示组;模式将像':/'一样突出显示。

我很难找出如何去除颜色。

2 个答案:

答案 0 :(得分:3)

据我所知,尚无此命令,但可以使用clearmatches()matchdelete()函数。

clearmatches()将删除所有 个匹配项:

:call clearmatches()

matchdelete()删除特定的匹配实例;您可以从getmatches()获取ID:

:for m in filter(getmatches(), { i, v -> l:v.group is? 'TODO' })
:  call matchdelete(m.id)
:endfor

您也可以过滤匹配项,例如使用pattern键的匹配模式。 :Unmatch命令可能类似于:

command! -nargs=1 Unmatch
    \  for m in filter(getmatches(), { i, v -> l:v.group is? <q-args> })
    \|     call matchdelete(m.id)
    \| endfor

答案 1 :(得分:3)

您可以使用:match TODO /pattern/或仅:match none撤消:match命令。与其他:2match:3match变体相同。

脚本中通常使用通用的matchdelete()函数来撤消通过:matchadd()添加的匹配项。当您以交互方式使用这些命令(针对一组有限的匹配项)时,我不建议您切换到它们。