4

Vim で LaTeX ドキュメントを開いているとします。

{\color{red} ... }

(ドットはいくつかのコンテンツを象徴するはずです)、つまり、私が欲しいのは、{\color{red}これら}の間のすべてが強調表示されていることです。これは私がやった

:syn region WarningMsg start=+{\\color{red}+ end=+}+

しかし、私が のようなものを書いた場合、Vim はもちろん の最初の出現を計算するため、強調表示されるの{\color{red} some{thing} important}はどれだけであるという問題があります。一致する中かっこをスキップするように、この強調表示ルールを作成するにはどうすればよいですか? そのような複数のレベルでも。{\color{red} some{thing}}

4

1 に答える 1

1

わかりやすくするために、各構文領域に特注の名前を付けてから、標準の色グループにリンクすることをお勧めします。元の地域の名前を変更しredTeXました。

2 番目の領域 を定義して、innerBrace無視する波括弧を定義し、この領域を透明としてマークする必要があります。次にredTeX、透明な領域を含むようにマークする必要があります。これは無視されます。

syn region innerBrace start=+{+ end=+}+ transparent contains=redTeX
syn region redTeX start=+{\\color{red}+ end=+}+ contains=innerBrace
hi link redTeX WarningMsg

この場合、redTeXそれ自体が として一致する追加の微妙な点があることに注意してくださいinnerBraceinnerBraceを含むとマークすることでこれを修正しましたredTeX

それが理にかなっていることを願っています!

于 2012-10-14T10:56:48.737 に答える