语法模式中带有关键字的 Vim 区域

语法模式中带有关键字的 Vim 区域

我需要创建一个自定义 vim 区域,其中包含确定的类和结构。例如,代码

syn region myCxxClass start="\(class\|struct\)\_[ \t]\+" end="}[^;]*;" transparent

开始和结束的模式可能会改变,但问题是这种区域不起作用,因为classstruct是关键字。

如何解决此问题?

答案1

您说得对,关键字匹配会阻止新区域的匹配。要解决这个问题,您需要重新定义要包含在您的区域中的关键字:

syn clear cStructure
syn clear cppStructure
syn keyword cStructure struct contained
syn keyword cppStructure class contained
syn region myCxxClass start="\(class\|struct\)\_[ \t]\+" end="}[^;]*;" contains=cStructure,cppStructure

相关内容