Vim突出显示嵌套区域

Vim突出显示嵌套区域,vim,vim-syntax-highlighting,Vim,Vim Syntax Highlighting,我现在和vim一起工作了几个月,我仍然在努力提高使用这个伟大编辑器的经验 我试图做的是为spice网络列表(电子产品)创建一个语法突出显示文件 我试图强调以下模式: .分包商或_门A B出 (*或_gate*是单元格的名称 A、 B和该单元的输出引脚) 我尝试用3种不同的颜色来突出它: 一个给我 一个用于or_门(单元) 一个用于A、B和OUT(引脚) 我在看以.subbkt开头的行,我试图找到一种匹配行中不同单词的方法 我尝试了很多不同的syn匹配组合,或者嵌套的syn区域,但我觉得我做得

我现在和vim一起工作了几个月,我仍然在努力提高使用这个伟大编辑器的经验

我试图做的是为spice网络列表(电子产品)创建一个语法突出显示文件

我试图强调以下模式:

.分包商或_门A B出

(*或_gate*是单元格的名称
A、 B和该单元的输出引脚)

我尝试用3种不同的颜色来突出它:

  • 一个给我
  • 一个用于or_门(单元)
  • 一个用于A、B和OUT(引脚)
我在看以.subbkt开头的行,我试图找到一种匹配行中不同单词的方法

我尝试了很多不同的syn匹配组合,或者嵌套的syn区域,但我觉得我做得不对

下面是我尝试的一个例子:

syn区域spiceCKT开始=“\.subkt”结束=“$”包含=spiceCell、spicePins

syn区域spiceCell开始=“\.subkt”rs=e结束=“$”包含

syn regionspicePinsstart=“\.SUBCKT\s\s*”rs=eend=“$”包含

我尝试使用模式(\s\s*),添加/删除rs=e部分,甚至定义开始或结束模式添加\zs和\ze

最后我没能让它工作,我只是觉得我让它变得更加复杂


任何人都可以帮我找出我的错误以及如何处理这种模式突出显示?

你可以尝试
syn match
look back

syn match spiceCKT /^\s*\.SUBCKT/
syn match spiceCell /\v(^\s*\.SUBCKT\s+)@<=or_gate/
syn match spicePins /\v(^\s*\.SUBCKT\s+or_gate\s+)@<=A B OUT/
syn match spiceCKT/^\s*\.SUBCKT/
syn match SPICELL/\v(^\s*\.SUBCKT\s+)@感谢您的回答!
它确实有效。谢谢你的提示

唯一的缺点是,当文件必须加载完整的行时,速度有点慢

我完成您的代码以满足我的需要:

syn match spiceCKT/^\s*.SUBCKT/

syn match SPICELL/\v(^\s*.SUBCKT\s+)@