3

vim 構文ファイルを作成しようとしていますが、次のテキストを一致させたいと考えています。

@[one two three four]

one基本的に、私はandを 2 つの別個の一致として一致させたいのですが、 and (またはそれらの後のもの)twoは気にしません。また、式の先頭に区切り記号を含めたくありません。threefour@[

次のように、リージョンでこれを試しました。

syn region langParamOne matchgroup=langListStart start=/@\[/ end=/\s\|\]/
syn region langParamTwo matchgroup=langListStart start=/@\[\S\+\s\+/ end=/\s\|\]/

残念なことに、これはごちゃごちゃしているように見えるだけでなく、一方が他方を含んでいるため、vim は一方のリージョンにしか一致しません。

この構文の一致を設定するにはどうすればよい@[ですか?ただし、一致に開始を含めないでください。

4

1 に答える 1

1

これはどう:

syn region langParam matchgroup=langListStart start=/@\[/ end=/\]/ contains=langParamOne,langParamTwo
syn match langParamOne /\(@\[\)\@<=\S\+/ contained
syn match langParamTwo /\(@\[\S\+\s\)\@<=\S\+/ contained
于 2012-12-28T07:35:12.880 に答える