2

新しい、できれば非常に単純な emacs モードでは、'a' のすべてのインスタンスを #0000FF にし、'b' を #DF0101 にしたいと考えています。これまでのところ、多くのグーグルにもかかわらず、これを行う方法を見つけていません。理想的には、入力したときにリアルタイムで発生します。

http://www.gnu.org/savannah-checkouts/gnu/emacs/manual/html_node/emacs/Highlight-Interactively.html

http://www.gnu.org/savannah-checkouts/gnu/emacs/manual/html_node/emacs/Font-Lock.html#Font-Lock

4

2 に答える 2

5

私はこれを私のナビマイナーモードに使用します:

;; Adding Navi to the syntax highlighting of emacs mode.

最初に、新しい顔をその色で作成します。私の場合、文字「t」の成功フォントは緑、「ナビ」と「ナビ」はシアンです。

必要に応じて、 font-lockについてお読みください。

(make-face 'font-lock-Navi-face)
(set-face-foreground 'font-lock-Navi-face "cyan")

(make-face 'font-lock-success-face)
(set-face-attribute 'font-lock-success-face nil :foreground "green")

次に、アタッチする「キーワード」(正規表現)を追加します。

(defun add-custom-keywords()
  "adds a few keywords for emacs mode"
  ;
  (font-lock-add-keywords nil
                     '(
                       ("Navi\\|navi" . 'font-lock-Navi-face)

 ;; here you can see that I highlight the letter "t" in " t " when spaced, 
 ;; or with a parenthesis\newline around it

                       ("\\s-t\\s-\\|\\s-t)\\|\\s-t\n" . 'font-lock-success-face)
                       )
                     )
)

"\\|"Navi(「または」はここにあります)またはnaviを単に文字「a」または「b」に置き換えることができるので"a\\|b"、それに顔を付けます。

; This is the hook to activate when the mode is triggered
(add-hook 'emacs-lisp-mode-hook 'add-custom-keywords)

最後の部分では、このフォントが「リアルタイム」であり、ファイルを開くたびに確実になります。

于 2013-01-24T21:42:38.423 に答える
4

add-font-lock-keywords主にユーザーのカスタマイズ用です。モードを自分で作成している場合はfont-lock-defaults、適切な値を設定するだけの方がはるかに優れています。

sample-modeいくつかの例については、emacswiki を確認してください。

于 2013-01-24T22:49:33.613 に答える