代码之家  ›  专栏  ›  技术社区  ›  Aron Lee

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

vim
  •  2
  • Aron Lee  · 技术社区  · 6 年前

    我想在Vim中有第二个颜色高亮显示, 简单的方法就是使用 :match , :2match :3match

    :match TODO /pattern/
    

    TODO 是突出显示组;图案将突出显示为 ':/' .

    2 回复  |  直到 6 年前
        1
  •  5
  •   Ingo Karkat    6 年前

    您可以撤消 :match TODO /pattern/ 命令 :match none ,或者只是 :match . 另一个也一样 :2match :3match 变体。

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

        2
  •  4
  •   Martin Tournoij ravi.zombie    6 年前

    据我所知没有命令,但你可以使用 clearmatches() matchdelete()

    clearmatches() 全部的 比赛:

    :call clearmatches()
    

    以及 匹配删除() 要删除特定的匹配实例,可以从 getmatches() :

    :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