代码之家  ›  专栏  ›  技术社区  ›  zpon

vim突出显示单词列表

  •  18
  • zpon  · 技术社区  · 15 年前

    我需要突出显示vim中的单词列表,最好在文件中定义这些单词。有点像拼写检查。我一直在看 http://vim.wikia.com/wiki/Highlight_multiple_words 但它要求我将每个单词定义为一个新位置,并且不支持将这些单词存储到文件中(尽管它们是可存储的)。

    3 回复  |  直到 10 年前
        1
  •  38
  •   michael.kebe    12 年前

    你可以使用 :match 命令。

    :match Todo /word1/
    

    命令的第一个参数是highlight组(查看所有可用组 :highlight )第二个参数是搜索模式。

    您可以将这些文件放入任何文件中,并通过 :source .

    另一种方法是更改正则表达式(thx@zpon):

    :match Todo /word1\|word2\|word3/
    

    如果要以不同的方式突出显示它们:

    :match Todo /word1/
    :2match Error /word2/
    :3match Title /word3/
    
        2
  •  16
  •   Community Mohan Dere    9 年前

    我建议你用 syn keyword 为了这个。还有其他选择,比如 :match 按照建议 michael.kebe syn match 等等,但这些都是基于正则表达式匹配。缺点是,随着要匹配的单词数的增加,vim的速度会降低。关键字匹配为 许多的 更快。您也可以很容易地在一行中定义多个关键字(尽管一行中只有大约512个字符的限制,如果内存正确的话)。

    syn keyword Todo word1 word2 word3
    syn keyword Todo word4
    syn keyword Todo word5
    

    把这些行放到任何文件中,然后 :source 或者把它扔到你的 ~/.vim/after/syntax/c.vim 因为它是 source 对于所有C文件(选择您感兴趣的文件类型的语法文件)。

    和…一样 迈克尔·凯贝 的答案,第一个参数( Todo 在本例中)是突出显示组。如果需要,可以组成自己的组并定义突出显示:

    syn keyword MyHighlightGroup word6 word7
    " Then EITHER (define your own colour scheme):
    hi MyGroupName guifg=Blue ctermfg=Blue term=bold
    " OR (make the colour scheme match an existing one):
    hi link MyGroupName Todo
    
        3
  •  -1
  •   Sergey    10 年前

    :匹配todo/\<\(word1\ word2\ word3\)\>。/