を相反する二つの正規表現は、私が/
が先行するすべての行の最初の単語をキャプチャし、1 hi def link
に割り当てしようとしている、としています第2のすべての行の単語(/
と/
で囲まれています)を第2のhi def link
に割り当てます。構文についてVimの正規表現:社内言語の構文ファイルを書き込もうとして
:
cmo/create/mo1///tri
createpts/brick/xyz/2,2,2/0.,0.,0./1.,1.,1./1,1,1
私はargOne
としてcmo
とcreatepts
を捕獲しようとしている、とargTwo
などcreate
とbrick
ています:
syn match argOne '^\zs[^\/]\+\ze\/'
syn match argTwo '^[^\/]\+\/\zs[^\/]\+\ze\/'
hi def link argOne Type
hi def link argTwo Statement
、彼らが競合する問題がある:ときの両方sys match
ステートメントが存在する場合、ViMはargOne
によって検出されたものだけをキャプチャします。しかし、孤立して、syn match
のいずれかがコメントアウトされた場合、argOne
またはargTwo
のいずれかが完全に機能します。
これらの2つのステートメントを互いにうまく再生するにはどうすればよいですか?
syn match argOne '^\zs[^\/]\+\ze' contained
syn match argTwo '\/\zs[^\/]\+\ze\/' contained
syn match argOneTwo '^\zs[^\/]\+\/[^\/]\+\ze\/' contains=argOne,argTwo
hi def link argTwo Statement
hi def link argOne Type
素晴らしい作品です!ありがとうございました! –