在 emacs 中应用自定义面孔

Applying custom face in emacs

我想为 python-mode 制作一个派生模式来添加自定义关键字和颜色。所以我把定义关键字面的部分代码调出来,加上自己的关键字。

如果我使用已经存在的面孔,它就可以正常工作。但我想使用自定义面孔,因此如果同时使用其他面孔,它不会改变颜色。 我搜索如何定义一张脸,结果是这样的:

(defface printr-face
  '((t :foreground "red" :weight bold))
  "Face for printr function"
  :group 'python-print-color-faces)

我尝试应用的代码部分(在变量 "python-font-lock-keywords" 内)如下所示:

(,(rx symbol-start (or "printr") symbol-end) . printr-face)

printr-face 在我使用时确实出现在列表中 M-x list-faces-display.

但是没有应用面部。 M-x describe-face 将其视为默认设置。

我做错了什么?如何使用我新定义的面孔?

为新关键词添加新面孔时,需要将关键词添加到:

(font-lock-add-keywords
 'my-mode
 '(("regex1" 1 'my-face1)
   ("regex2" 1 'my-face2))
 1)

choroba 在右边。 我还错过了在 defface 中设置一个括号:

(defface printr-face `((t (:foreground "red" :weight bold))) "Face for printr function"
  :group  'python-print-color)

(忘记封装:forground :weight)

然后

 (font-lock-add-keywords
 'python-print-color-mode
 '(("printr" . 'printr)
   ("printg" . 'printg)))

请注意,我必须使用“.”而不是“1”使其工作。不确定“1”应该做什么,但它对我不起作用。