在一个新的,希望非常简单的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
我将它用于我的Navi次要模式:
;; Adding Navi to the syntax highlighting of emacs mode.
Run Code Online (Sandbox Code Playgroud)
首先用他们的颜色制作新面孔,在我的情况下为绿色表示字母"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")
Run Code Online (Sandbox Code Playgroud)
现在添加要附加的"关键字"(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)
)
)
)
Run Code Online (Sandbox Code Playgroud)
你可以用"\\|"
你的字母"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)
Run Code Online (Sandbox Code Playgroud)
最后一部分确保此字体为"实时",并且每次打开文件时都是如此.