【问题标题】:Custom syntax highlighting on current buffer in vimvim 中当前缓冲区的自定义语法高亮显示
【发布时间】:2012-11-07 15:04:30
【问题描述】:

有时我想在当前缓冲区上应用一些自定义的额外语法突出显示。

如何使用内置的 vim 语法/高亮系统来完成(我不想使用 Highlight 插件)

例如,我想突出显示当前缓冲区中的所有断言语句。

【问题讨论】:

    标签: vim vim-syntax-highlighting


    【解决方案1】:

    如果突出显示仅针对某些文件类型(例如 Java),并且您一直想要它,我会在 :syn match ... 定义中扩展原始语法,并将其放在 ~/.vim/after/syntax/java.vim 中。

    dwalter所示,使用:match(或:2match)进行自发突出显示。

    如果您要编写更精细的映射,可能带有切换开/关逻辑,请使用 matchadd() / matchdelete()

    最后,如果您需要突出显示任意单词/字符串,例如使用文本标记标记文档,我建议您使用像 Mark 这样的插件(我已接管维护)。

    【讨论】:

      【解决方案2】:

      如果需要,您可以使用matchhighlight

      示例:

          :hi MyAsserts term=bold ctermbg=Cyan
          :match MyAsserts /assert(.*)/
      

      以青色背景突出显示您的assert() 语句。 :match 不带任何参数将重置它。

      有关highlightmatch 的更多信息,请通过以下方式查看文档 :help hi:help match

      要重复使用突出显示,您可以将这些命令保存在一个文件中,并使用:source file.vim 随时加载它。另一种方法是在 .vimrc 中定义一个命令。

           hi MyAsserts ctermbg=Cyan
           command -bar -nargs=0 HiAsserts match MyAsserts /assert(.*)/
           "highlight any given regex
           command -bar -nargs=1 HiIt match MyAsserts /<args>/
      

      并使用:HiAsserts 调用它以突出显示您的assert() 语句或:HiIt foo 以突出显示缓冲区中的每个foo

      【讨论】:

        猜你喜欢
        • 2013-04-16
        • 2016-05-07
        • 2010-09-08
        • 2013-01-24
        • 2016-08-16
        • 1970-01-01
        • 2013-06-18
        • 2015-04-24
        • 1970-01-01
        相关资源
        最近更新 更多