Vim 主要语法的含义是什么

Vim 主要语法的含义是什么,vim,Vim,我正在写一个vim语法文件。 我发现一个名为main\u syntax的变量在几个现有的语法文件中使用。 但我找不到任何解释它的文件 这只描述了另一个变量,b:current_syntax,即 用于告诉其他脚本当前语法是什么 看起来main\u语法具有相同的含义。 它是一个遗留变量吗?一些语法脚本支持通过导入另一种语法:语法包括,例如html中的javascript main\u syntax变量跟踪用户/文件类型实际设置的语法;设置此变量时,包含的语法脚本将忽略清除现有语法项。(语法脚本应该是

我正在写一个vim语法文件。 我发现一个名为
main\u syntax
的变量在几个现有的语法文件中使用。 但我找不到任何解释它的文件

这只描述了另一个变量,
b:current_syntax
,即 用于告诉其他脚本当前语法是什么

看起来
main\u语法
具有相同的含义。
它是一个遗留变量吗?

一些语法脚本支持通过
导入另一种语法:语法包括
,例如html中的javascript

main\u syntax
变量跟踪用户/文件类型实际设置的语法;设置此变量时,包含的语法脚本将忽略清除现有语法项。(语法脚本应该是
:如果设置了
b:current_syntax
,则完成
而不执行任何操作。)
b:current_syntax
的另一个区别是
main_syntax
仅在实际语法加载过程中定义,而另一个仍然存在


TL;DR:如果您自己支持包含/包含其他语法,请从现有语法复制条件样板文件,例如
$VIMRUNTIME/syntax/html.vim
;如果不是,您可以忽略这一点。

我不知道这是否是vim支持概念的约定。如果是后者,你是如何找到它上面的文档的?@DanielKaplan:没有明确的文档,但是Vim附带的几个语法使用
main\u语法
。因为大多数语法作者都是基于这些语法的,所以这是一个强大的约定,可能也得到了Bram的支持。如果您认为应该对此进行记录,请提交文档补丁!