3

VIM でシンタックス ハイライターを作成しようとしています。別の試合の中でどのように試合をハイライトしますか?

それぞれの一致を見つけるために、2 つのsyn match行を作成しました。これは、一致が分離されている場合に機能します。

syn match celString "^xpath=.\{-};"      -> matches "xpath=.........;"
syn match celComment "\${.\{-}}"         -> matches "${LIB_METADATA};"

構文の結果を強調表示 - 最初の行では一致が分離されており、2 行目では一致が重複しています。

  • 最初の行は、xpath 文字列の場合はピンク、文字列の場合は青です${..}

  • 2 行目は xpath 文字列のピンクですが、${..}その文字列内に含まれる は無視されます。

行の順序を変更しようとしましたsyn matchが、効果がありません。

あなたのアイデアをいただければ幸いです。

4

1 に答える 1

5

デフォルトでは、Vimはまだ構文が割り当てられていないテキストにのみ構文グループを適用します。1つのグループに他のグループを含めることができるように指定するには、次のcontains=...属性を使用します。

:syn match celString "^xpath=.\{-};" contains=celComment

ここでは、定義の順序は重要ではありません。詳細については、を参照:help :syn-containsしてください。

于 2013-03-01T14:43:30.863 に答える