代码之家  ›  专栏  ›  技术社区  ›  Paul Biggar

在vim中,如何突出显示TODO:和FIXME:?

  •  39
  • Paul Biggar  · 技术社区  · 14 年前

    3 回复  |  直到 14 年前
        1
  •  55
  •   Cascabel    14 年前

    好吧,你已经发现了问题,但这就是原因。

    int , double 还有,在你的情况下,为了固定时间和待办事项。我真的是指固定的字符串;它们必须是精确的和完整的单词,不像使用正则表达式的匹配和区域。例如,从C语法:

    syn keyword   cTodo   contained    TODO FIXME XXX
    

    在几乎所有内置语法定义中都是这样,只是组名不同(cTodo)。

    iskeyword 告诉vim给定字符是否可以作为关键字的一部分。默认情况下,它不包含冒号,因此在查找关键字时,vim将“FIXME:”视为“FIXME”,并忽略冒号。如果你粘在结肠上( set iskeyword+=: ),现在可以定义额外的亮显位:

    syn keyword   myTodo   contained   TODO: FIXME:
    

    hi def link myTodo Todo

    或者,你可以离开 iskeyword公司 单独使用(我可能会推荐这个),只需使用一个匹配项:

    syn match   myTodo   contained   "\<\(TODO\|FIXME\):"
    hi def link myTodo Todo
    
        2
  •  14
  •   3 revs, 2 users 56%<br/>user5164080&#13;    7 年前
    augroup vimrc_todo
        au!
        au Syntax * syn match MyTodo /\v<(FIXME|NOTE|TODO|OPTIMIZE|XXX):/
              \ containedin=.*Comment,vimCommentTitle
    augroup END
    hi def link MyTodo Todo
    

    containedin 将其添加到以“Comment”结尾的所有组中,另外 " TODO: foo 否则不会被突出显示为MyTodo。

        3
  •  2
  •   Adi Inbar    10 年前

    make syntax file (not .vimrc)

    • 全局语法文件位于vim目录(例如。 /usr/share/vim/vim72/syntax/c.vim)

    • 拥有。(覆盖)