Jør*_*gen 5 vim highlight delimiter vim-syntax-highlighting
我正在 Vim 中为一种语言(还没有)编写语法突出显示文件。
与我遇到的问题类似的问题是在 Python 中突出显示列表:我希望列表的元素能够正常突出显示,假设它们是语言允许出现在此类列表中的类型,而列表的结构(即[ , ]应该以自己的颜色突出显示。
目前我使用
syn region myList start='\[' end=']' transparent contains=myList,myDelimiter,myNumber,myString
syn match myDelimiter ',' contained
Run Code Online (Sandbox Code Playgroud)
myList包含自身允许嵌套列表(因此合法的额外]结束标记)而不破坏区域。但是,由于它是透明的(以允许突出显示其他合法组(myNumber在myString本示例中)),因此[开始和]结束括号保持不突出显示。
该myDelimiter组可以被认为是至少突出显示逗号的解决方法(尽管如果没有结构的其余部分,即 start[和 end ,它是毫无意义的])。将[和添加]到myDelimiter模式中,如下所示:
syn match myDelimiter ',\|\[\|]' contained
Run Code Online (Sandbox Code Playgroud)
打破myList区域并使其在文件的不相关部分(任何列表之外)上激活,从而破坏列表中不允许的元素的其他语法突出显示。我认为问题是结尾不再被视为结尾,而是跨越到文件中最后一个数组的大数组中的分隔符)。

我尝试matchgroup=myList添加syn region myList ...(并确保它hi myList ctermfg=red在我的颜色方案中有相应的条目),但它没有改变任何内容。
有没有办法来解决这个问题?
您需要添加matchgroup=myListContainer到区域定义中,然后您可以突出显示这个新组:
:hi myListContainer guifg=red
Run Code Online (Sandbox Code Playgroud)
您可以使用matchgroup任何其他组名称,但我认为它不应该与您链接到的主要组相同。
请看一下这里的例子。
| 归档时间: |
|
| 查看次数: |
1537 次 |
| 最近记录: |