繁体   English   中英

Vim 语法高亮之后

[英]Vim Syntax Highlighting After

我有一种文本文件,其中包含一堆关键字,所有关键字都以哈希 (#) 开头。 例子:

#foobar
    #fizz bizz

我想调整 vim 语法文件以仅突出显示关键字后的单词; 在这个例子中,它将是 bizz。

即使您不想突出显示关键字本身(您的意见以后可能会改变),也更容易将两者解析为单独的语法组,因为 Vim 的语法突出显示是为完整解析文档而量身定制的。

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

syntax match myKeywords "#\w\+\>" skipwhite nextgroup=myKeywords,myWords
syntax match myWords "\<\w\+\>" contained skipwhite nextgroup=myKeywords,myWords

(这些模式将您的稀缺描述作为输入;根据您的需要进行调整。)要突出显示单词,您可以将myWords链接到现有的突出显示组(推荐),或者定义您自己的属性:

highlight link myWords Statement

myKeywords被解析,但没有突出显示,因为它没有:highlight命令。

完整语法脚本的路径

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

如果是新语法,最好写一个对应的文件类型检测 在语法脚本中,然后将my前缀替换为所选的文件类型名称。 您可以在:help 44.11找到有关语法脚本的更多信息。

要突出显示#fizz之后的#fizz

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

这将创建一个语法组HashWord匹配模式\\v(#fizz>)@<=.* h ighlighting小号挞( hs )的S挞(后一个字符s+1的图案的)。

可以使用ctermbgctermfg更改背景和前景突出显示的颜色。 对于 GUI vim,请改用guibgguifg

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM