0

Emacs でrhtml-modeを使用しています。

そのような方法でハッシュを書くと、:key => "value"適切に:key色付けされます。

しかし、key: "value"スタイルでは、色付けは機能しません。の色のみ:が変更されます。

rhtml-mode を少し変更してみました。<% %> タグでテキスト if を中括弧で囲んだ場合、モードは内部で ruby​​-mode をロードするようです。奇妙なことに、ルビーモードでハッシュを書くと、両方のタイプの書き込みが適切に色付けされます。

Emacs24 でデフォルトの ruby​​-mode を使用しています。

ハッシュキーの色が定義されている場所を(行番号で)見つけるにはどうすればよいですか?

4

1 に答える 1

0

短い答え: C-h vrhtml-in-erb-keywords. これにより、rhtml キーワードの正規表現を示すバッファが開きます。elisp ファイルで定義されている場所への直接のリンクがあります。その定義はこちらで確認できます。

以下を .emacs ファイルに追加します。

(add-hook 'rhtml-mode
          (lambda ()
           (font-lock-add-keywords nil
            '(("\\([0-9a-zA-Z_]*:\\)" 1
              font-lock-constant-face t)))))

これにより、Emacs は によって決定された色付けfont-lock-constant-faceを regexp に一致するものすべてに適用します"\\([0-9a-zA-Z_]*:\\)"。これは必要以上に一致する可能性があるため、微調整する必要がある場合があります。

特定のキーワードの色がどこにあるかを正確に見つけるための特に簡単な方法があるかどうかはわかりません。M-xdescribe-face情報が必要な単語の上にポイントを置いて、いつでも行うことができます。これは、Emacsがどのように色付けされるべきだと考えているかを教えてくれます - のようなものfont-lock-keyword-faceです。C-h vfont-lock-keywordEmacsがそれをどのように決定したかを教えてくれますが、あまり役に立ちません。

最も簡単な方法は、使用しているモードのソース コードを開いて、キーワードが定義されている場所を検索することです。でソース コードを開くことができますC-h frhtml-mode。これにより、ソースへのリンクを含むヘルプ バッファが開きます。

于 2013-08-08T08:53:20.963 に答える