2013-04-23 10 views
5

私はvim構文ファイルを書いています。 そして、いくつかの既存の構文ファイルでmain_syntaxという変数が使用されています。 しかし、私はそれを説明するドキュメントを見つけることができません。main_syntaxの意味は何ですか

このdocumentは、である別の変数b:current_syntaxのみを記述し、現在の構文が何であるかを別のスクリプトに伝えます。

main_syntaxは同じ意味を持っています。 これは従来の変数ですか?

答えて

2

一部の構文スクリプトでは、:syntax includeで別の構文にインポートすることができます。 javascript inside html

変数main_syntaxは、どの構文が実際にユーザー/ファイルタイプによって設定されたかを追跡します。インクルードされた構文スクリプトは、この変数が設定されているときに既存の構文項目のクリアを省略します。 (b:current_syntaxが設定されている場合は、構文スクリプトは:finishになります。b:current_syntaxとの別の相違点は、main_syntaxは実際の構文読み込み処理中にのみ定義され、他の文字はそのままです。

TL; DR:他の構文を含める/自分自身をサポートする場合は、条件付き定型文を既存の構文からコピーします。 $VIMRUNTIME/syntax/html.vim;もしそうでなければ、あなたはこれを無視することができます。

+0

これがvimでサポートされている概念の慣習であるかどうかはわかりません。後者の場合、どうやってドキュメントを見つけましたか? –

+0

@DanielKaplan:明示的なドキュメントはありませんが、Vimに同梱されているいくつかの構文では 'main_syntax'を使用しています。ほとんどの構文作成者がそれらの構文に基づいているので、それは強力な規約であり、恐らくBramもサポートしています。これを文書化する必要があると思われる場合は、docパッチを提出してください! –