5

GNU / Emacsモードのfont-lock-keywordsを設定するとき、単一のマッチャーで正規表現の複数のサブ式を強調表示することは可能ですか?私がやりたいのは、次のようなことです。

("\\(foo\\)-\\(bar\\)" '(1 foo-face) '(2 bar-face))

そのようなものの正しい構文は何でしょうか?それとも、2つの異なるマッチャーに分割する必要がありますか?

4

1 に答える 1

5

次のようなものを試してください。

("\\(foo\\)-\\(bar\\)" (1 foo-face) (2 bar-face))

つまり、あなたと同じですが、余分な引用符はありません)。

これは、カスタムのfont-lock-keywords定義にこのようなさまざまなビットがあるためです。それらのいくつかはnil t、次のように、2番目のものの終わりにあります:

("\\(foo\\)-\\(bar\\)" (1 foo-face) (2 bar-face nil t))

OVERRIDEこれはおよびオプションのフラグに対応し、LAXMATCH正確な状況によっては必要になる場合があります。

のドキュメントでは、これについてある程度詳しく説明していますが、従うのが常に最も簡単であるとは限りません。たとえば、font-lock-keywordsの既存の値のように、他の人の作業設定をコピーする方が簡単だと思います。c-font-lock-keywords-3

于 2010-02-10T14:19:46.670 に答える