Vim регион с ключевыми словами в шаблонах синтаксиса
Мне нужно создать пользовательский регион 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