加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

Vim语法文件…试图理解“包含”

发布时间:2020-12-15 19:02:44 所属栏目:安全 来源:网络整理
导读:我正在尝试为我正在使用的某些自定义格式修补新的vim语法文件.我能理解的大部分内容,但关键词“包含”给我带来了麻烦. 这里有没有人可以给我一个解释它的作用(我已经阅读了帮助 – 并没有完全得到它),好像他正在向树上解释它. 通常,您只能在一个位置使用一种
我正在尝试为我正在使用的某些自定义格式修补新的vim语法文件.我能理解的大部分内容,但关键词“包含”给我带来了麻烦.

这里有没有人可以给我一个解释它的作用(我已经阅读了帮助 – >并没有完全得到它),好像他正在向树上解释它.

通常,您只能在一个位置使用一种语法突出显示方法.因此,要使用类C语法作为示例,如果您定义一个区域以在左括号'{‘上开始并在结束括号’}’上结束,则该区域的语法突出显示将是相同的.

contains =允许您配置要包含在外部组中的其他语法突出显示组.要遵循前面的示例,您可能希望int突出显示,即使它位于外部区域.然后你可以有类似的东西:

syn keyword Keyword int
syn region BraceBlock start='{' end='}' contains=Keyword

需要稍后将项目添加到包含的关键字列表中是很常见的.有几种方法可以做到这一点.首先,您可以使用contains = ALL或contains = ALLBUT,Error来允许任何内容位于某个区域.其次,您可以使用containin将某些内容推送到另一个区域的包含中:

syn region BraceBlock start='{' end='}'
syn keyword Keyword int containedin=BraceBlock

第三,您可以在此组中定义“包含”为有效的任何内容:

syn region BraceBlock start='{' end='}' contains=CONTAINED
syn keyword Keyword int contained

最后,您可以使用集群,这使得很容易确定哪些地方:

syn region BraceBlock start='{' end='}' contains=@MyCluster
syn keyword Keyword int
syn cluster MyCluster contains=Keyword
syn keyword Conditional if else
syn cluster MyCluster add=Conditional
" Now conditionals and keywords can appear in a BraceBlock

如果不确切地知道你想要理解什么,我不知道还有什么可说的 – 你想要实现什么以及是什么导致了你的问题?

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读