Vim 匹配 includedin 未按预期工作

Vim 匹配 includedin 未按预期工作

我尝试使用手册中的示例来扩展 Vim 中的 C 语法。

首先我启动 vim 而不进行任何配置:

vim -u NONE test.c

然后我加载 c 语法并创建我的扩展

syntax on
syntax keyword myword HELP containedin=cComment contained
highlight myword guibg=red

代码:

1: /* HELP */
2: int main(int argc, char **argv) {
3:     int HELP = 0;
4:     if(HELP);
5: }

HELP 在第 1 行按预期突出显示。它在第 4 行也突出显示,对此有什么解释吗?

答案1

您需要找出哪个语法组“占据”了HELP第三行中未被语法规则覆盖的。:syn list显示所有活动组,但当您安装SyntaxAttr.vim - 显示光标下字符的语法高亮属性插入。

SyntaxAttr 告诉我cBlock那里的语法匹配;这也需要包含在你的扩展中:

syntax keyword myword HELP containedin=cComment,cBlock contained

相关内容