例如,我希望“while”为蓝色,“for”为绿色,如何做到这一点?除了颜色,我可以使语法粗体或斜体吗?非常感谢你。
答案 0 :(得分:1)
最简单的方法是将光标放入给定颜色的字符串中,然后键入 M-x set-face-foreground
Enter 。然后只需确认面部名称并指定颜色即可。要将面设置为粗体或斜体,请以类似方式使用set-face-font
。
您可以将设置保存到.emacs
文件中:
(set-face-foreground 'font-lock-comment-face "gray")
答案 1 :(得分:1)
由于以下关键字的ALL
在python.el
中定义为python-font-lock-keywords
,因此您需要使用不同的字体或者将这些相同的关键字的来源破解为其中的一部分。有不同的字体:
“和”“del”“来自”“not”“而”“as”“elif”“global”“或”“with”“assert”“else”“if”“pass”“yield”“break “”除“”import“”class“”in“”raise“”continue“”finally“”is“”return“”def“”for“”lambda“”try“”print“”exec“”nonlocal“”自”。
以下代码是如何为python-font-lock-keywords
中已定义的某些关键字胜过python.el
的示例 - 在此示例中,while
为蓝色且粗体强>;并且,for
为绿色,粗体和斜体。 python-font-lock-keywords
未被特别定义的字体面孔限制,将默认为font-lock-keyword-face
- 我也包含了对该面的示例修改:
(custom-set-faces
'(font-lock-keyword-face
((t (:background "white" :foreground "red" :bold t))))
)
(defvar lawlist-blue (make-face 'lawlist-blue))
(set-face-attribute 'lawlist-blue nil
:background "white" :foreground "blue" :bold t)
(defvar lawlist-green (make-face 'lawlist-green))
(set-face-attribute 'lawlist-green nil
:background "white" :foreground "green" :bold t :italic t)
(defvar lawlist-keywords-01
(concat "\\b\\(?:"
(regexp-opt (list "hello" "world" "while" ))
"\\)\\b"))
(defvar lawlist-keywords-02
(concat "\\b\\(?:"
(regexp-opt (list "foo" "bar" "for" ))
"\\)\\b"))
(font-lock-add-keywords 'python-mode (list
(list (concat
"\\("lawlist-keywords-01"\\)") 1 'lawlist-blue t)
(list (concat
"\\("lawlist-keywords-02"\\)") 1 'lawlist-green t)
))
答案 2 :(得分:0)
另一种方法是使更改永久生效
M-x customize-face RET font-lock TAB
这将为您提供一个列表,以选择要更改的脸部。 在打开的缓冲区中,它会显示当前变量,您可以输入[选择]链接,然后从emacs的颜色变量中进行选择。