我需要创建一个自定义 vim 区域,其中包含确定的类和结构。例如,代码
syn region myCxxClass start="\(class\|struct\)\_[ \t]\+" end="}[^;]*;" transparent
开始和结束的模式可能会改变,但问题是这种区域不起作用,因为class
和struct
是关键字。
如何解决此问题?
答案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