1

デフォルトでは、Emacsは定数、構造体メンバー、関数呼び出しなどを強調表示しません(定義内を除く)。ここではハ長調について話しています。

テキストのマッチングだけに基づいて、基本的な強調表示が必要です。たとえば、大文字とアンダースコアのみを含む単語[A-Z _] +、たとえばSOME_CONSTは定数です(特に強調表示されていない限り)。同様に、[a-zA-Z _] [a-zA-Z0-9_] \ s(関数呼び出しとして;-> [a-zA-Z _] [a-zA-Z0-9_]*として一致させることができます。構造体メンバーなど

どうすればこのemacsを実行できますか?

4

1 に答える 1

1

必要なelisp関数はfont-lock-add-keywordsだと思います。私は.emacsに以下を追加し、大文字の単語に必要だと思うものを取得しました。

(font-lock-add-keywords 'c-mode '("\\<\[A-Z_\]\+\\>"))

整数定数を処理するには、もう少し追加する必要があります。これに関するドキュメントの中には、正規表現に精通していないと、処理速度が大幅に低下する可能性があるため、複数のキーワードを照合するにはregexp-optを使用する必要があると警告しているものがあります。

私にとって少し混乱した部分は、font-lock-add-keywordsへの引数が正規表現になり得るということです。

于 2012-09-04T23:10:13.850 に答える