在一个新的,希望非常简单的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
答案 0 :(得分:5)
我将其用于我的Navi次要模式:
;; Adding Navi to the syntax highlighting of emacs mode.
首先用他们的颜色制作新面孔,在我的情况下为绿色表示字母“t”的成功字体,青色为“Navi”和“navi”。
如果需要,请阅读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")
现在添加要附加的'关键字'(regexp):
(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)
)
)
)
你可以用你的字母“a”或“b”代替Navi(“或”在这里"\\|"
)或navi,所以"a\\|b"
然后给它面部。
; This is the hook to activate when the mode is triggered
(add-hook 'emacs-lisp-mode-hook 'add-custom-keywords)
最后一部分确保此字体为“实时”,并且每次打开文件时都会。
答案 1 :(得分:4)
add-font-lock-keywords
主要用于用户自定义。如果您自己编写模式,那么将font-lock-defaults
设置为适当的值会更好。
在emacswiki上查看sample-mode
以获取一些示例。