Vim语法高亮显示

Vim语法高亮显示,vim,syntax,Vim,Syntax,我有一种文本文件,它有一堆关键字,都以散列(#)开头。例如: #foobar #fizz bizz 我想调整一个vim语法文件,只突出显示关键字后面的单词;在本例中,在#fizz之后突出显示文本将是bizz.: syntax match HashWord /\v(#fizz>)@<=.*/hs=s+1 highlight HashWord ctermbg=60 syntax match HashWord/\v(#fizz>)@即使您不想突出显示关键字本身(您的意见稍后可能

我有一种文本文件,它有一堆关键字,都以散列(#)开头。例如:

#foobar
    #fizz bizz

我想调整一个vim语法文件,只突出显示关键字后面的单词;在本例中,在
#fizz
之后突出显示文本将是bizz.

syntax match HashWord /\v(#fizz>)@<=.*/hs=s+1
highlight HashWord ctermbg=60

syntax match HashWord/\v(#fizz>)@即使您不想突出显示关键字本身(您的意见稍后可能会改变),也更容易将两者解析为单独的语法组,因为Vim的语法突出显示是针对文档的完整解析而定制的

因此,定义关键字和单词的语法组,并指定它们之间的关系:

syntax match myKeywords "#\w\+\>" skipwhite nextgroup=myKeywords,myWords
syntax match myWords "\<\w\+\>" contained skipwhite nextgroup=myKeywords,myWords
分析了
myKeywords
,但没有突出显示,因为没有针对它的
:highlight
命令

完整语法脚本的路径 如果需要“调整”(第三方)语法脚本,最好将这些扩展分别保存在after目录中(例如
~/.vim/after/syntax/.vim
)。此外,根据现有语法组的不同,如果现有语法组已经匹配(可以使用
containedin=…
修复),则可能会出现其他复杂情况

如果这是一种新语法,最好编写相应的文件类型检测;在语法脚本中,将
my
前缀替换为所选的文件类型名称。有关语法脚本的更多信息,请访问
:help 44.11

highlight link myWords Statement