1

私はこのようなコードを持っています:

# some comment
comment  This is a comment \
         that continues.
keyword option=3.123e4

コメントは「#」または「comment」で始まり、「\」と改行で続けることができます。最後の「\」の後、またはリストのキーワードまで、次の行と一致させたいと思います。これが私が持っているものです:

syn match atlasComment "#.*$"
syn match atlasComment "comment.*$"
syn keyword myKeyword keyword anotherKW nextgroup=myOption skipwhite
syn keyword myOption option

とにかく強調表示されているキーワードのリストから、「コメント」から特定のキーワードまでの範囲を使用することは可能ですか?それとももっと良い方法はありますか?

4

1 に答える 1

1

に役立つヒントがいくつかあります:help :syn-oneline

「oneline」引数は、領域が線の境界を越えないことを示します。現在の行で完全に一致する必要があります。ただし、領域に行の境界を越える包含アイテムがある場合、それはとにかく次の行に続きます。含まれているアイテムは、行の継続パターンを認識するために使用できます。

これにより、次の解決策が得られます。

:syn region atlasComment start="comment" end="$" oneline contains=atlasCommentContinuation
:syn match atlasCommentContinuation "\\$" contained
于 2012-12-10T16:49:29.643 に答える