gpt4 book ai didi

vim - vim 中的嵌入式 awk 语法突出显示

转载 作者:行者123 更新时间:2023-12-04 04:04:45 26 4
gpt4 key购买 nike

我有一个用于突出显示 bash 脚本中嵌入的 awk 的语法文件:

syn include @AWKScript syntax/awk.vim
syn region AWKScriptCode matchgroup=AWKCommand
\ start=+[=\\]\@<!'+ skip=+\\'+ end=+'+ contains @AWKScript contained
syn region AWKScriptEmbedded matchgroup=AWKCommand
\ start=+\<\(g\?awk\|\$AWK\)\>+ skip=+\\$+ end=+[=\\]\@<!'+me=e-1
\ contains=@shIdList,@shExprList2 nextgroup=AWKScriptCode
syn cluster shCommandSubList add=AWKScriptEmbedded
hi def link AWKCommand Type

这个部分有问题:

start=+\<\(g\?awk\|\$AWK\)\>+

它适用于 awk 和 gawk,但不适用于 $AWK。如何添加规则以匹配 $AWK 作为 AWKScriptEmbedded 区域的起始模式?

最佳答案

问题是 $AWK 已经被 shDerefSimple 语法组高亮显示,所以你的新区域没有被应用。将语法定义拆分为两部分,并为后者添加 containedin=:

syn region AWKScriptEmbedded matchgroup=AWKCommand
\ start=+\<g\?awk\>+ skip=+\\$+ end=+[=\\]\@<!'+me=e-1
\ contains=@shIdList,@shExprList2 nextgroup=AWKScriptCode
syn region AWKScriptEmbedded matchgroup=AWKCommand
\ start=+\$AWK\>+ skip=+\\$+ end=+[=\\]\@<!'+me=e-1
\ contains=@shIdList,@shExprList2 containedin=shDerefSimple nextgroup=AWKScriptCode

关于vim - vim 中的嵌入式 awk 语法突出显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13913756/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com