突出“定义和绑定命令”可以非常轻松地使用“字体锁定附加关键字”来实现,用法是
(defun my-elisp-mode-keywords()
(font-lock-add-keywords nil
'(
("\\<\\(define-and-bind-command\\)" . 'font-lock-keyword-face)
)
)
)
当然你可以改变“字体 - 锁定关键字面对'任何你喜欢的面孔或创建和使用自己的脸。您可以通过将点(光标)移动到文本的字体锁定部分并输入“describe-face”然后返回来找到已经非常容易使用的名称。
EDIT2:哦,当然,你需要的是defun定义勾勾一些,对于elisp的模式将是:
(add-hook 'emacs-lisp-mode-hook 'my-elisp-mode-keywords)
突出foo的部分可以使用正则表达式来完成。
不幸的是我还不能帮助你的那部分,因为我不知道如何匹配包含“定义和绑定命令”,但只有在突出字正则表达式。
编辑:除非你想在同一张脸上突出'define-and-bind-command'和foo部分,那么它应该很容易。但我想你希望他们有不同的面孔?
EDIT3:纠正了我的代码,计算器之前吃了一些支撑...
Edit4:好吧,我对第二部分只匹配的解决方案,我还没有广泛的测试,但它似乎工作。我已经允许FOO到包含任何字符,但空间(和换行符我认为),我想一个可能会限制该事件futher到-ZA-Z0-9和“ - ”,可以随意改变自己的喜好。该守则只负责foo的部分匹配是
("\\bdefine-and-bind-command\s\\([^\s]*\\)" 1 'font-lock-function-name-face t)
插入的是,在上述功能的其他字体锁定关键字后面的线,你是好去。正则表达式匹配“定义和绑定命令”,其必须开始一个字(这是\ b为)后跟一个空格,然后将其返回(字体锁)一切,接着直到存在空间。
希望这会有所帮助!