You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Vim类Yacc语言语法文件:嵌套大括号高亮异常问题求助

类Yacc语言Vim语法文件的嵌套大括号高亮问题

我正在为类Yacc语言编写Vim语法文件,该语言的大括号代码块中会嵌套另一种语言,且两种语言都使用大括号作为语法的一部分。简化代码示例如下:

meta lang {
  lang { meta lang } lang }
meta lang

其中meta是外部语言的关键字,lang是内部语言的关键字,这些关键字在对方语言的语境中不应被高亮。

预期的高亮效果(大写表示高亮的关键字,小写表示不高亮):

META lang {
  LANG { meta LANG } LANG } META lang

但我编写的语法文件产生了错误的高亮,无法正确识别块的结束位置:

META lang {
  LANG { meta LANG } LANG } meta LANG

我的语法文件内容如下:

" .vim/syntax/mylang.vim
sy cluster lang contains=langKeyword,langBlock

sy keyword metaKeyword meta
sy keyword langKeyword lang contained

sy region metaBlock start="{" end="}" contains=@lang
sy region langBlock start="{" end="}" contains=@lang contained

hi link metaKeyword Constant
hi link langKeyword Keyword

请问我哪里出错了?


内容的提问来源于stack exchange,提问作者Li-yao Xia

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.27 14:05:05