matchgroup

vimのsyntax hilightingは、複雑ですね。vimを6.4に変えたら、どうやらtexのsyntax hilightingの定義が変わってしまったようで、 \begin{document}と\end{document}で囲まれた部分のhilightingが、うまくいかなくなった。

ということで、重い腰を上げてsyntax hilightingの理解開始。

matchgroup、regionの始点終点を定義するパターンに対して、そのregion自身とは別のsyntax名を付けるための仕組み。

例えば、

syntax region A start=/->/ end=/<-/

では、->と<-で囲まれた部分にAという名前を付けて、領域Aに対する色付けがなされる。その際、領域の始終点を定義している->, <-に対しても、領域Aに対する色付けがなされてしまう。

でも、領域の始終点には、別の色を付けたくなるのが人情というもの。でnatchgroupの登場。

syntax region A matchgroup=RegionStart  start=/->/  matchgroup=RegionEnd end=/<-/

とすると、開始マークの->に対してはRegionStart色が、終了マークの<-にはRegionEnd色が付くそうな。

ほほぅ。