2024-10-05 14:28:11 发布
网友
我不熟悉emacs。我从here开始使用emacs的twilight主题。但是我在python中得到了相同的颜色
但是,我希望为以下对使用不同的颜色集:
import and from
def and class
try and if
我查看了这个主题文件,发现font-lock-keyword-face决定了上述关键字以及与它们相似的关键字的颜色。在
font-lock-keyword-face
那么我如何给上面的两个颜色设置不同的颜色呢?有办法吗?在
我在emacs24上。我的.emacs怎么了?在
.emacs
因为下列关键字中的ALL在python.el中定义为python-font-lock-keywords,因此您需要用不同的字体来替换其中的一些关键字,或者破解源代码,使这些相同的关键字具有不同的字体:
ALL
python.el
python-font-lock-keywords
“and”“del”“from”“not”“while”“as”“elif”“global”“or”“with”“assert”“else”“if”“pass”“yield”“break”“exece”“nonlocal”“self”“中”“raise”“continue”“finally”“中”“pass”“yield”“exec”“nonlocal”“self”“的”“return”“def”“。”。在
下面的代码是一个示例,说明如何对python.el中已定义的一些关键字使用python-font-lock-keywords在本例中,while用粗体表示蓝色,for用粗体和斜体表示。python-font-lock-keywords未被特殊定义的字体字体所压倒的字体将默认为font-lock-keyword-face我还包含了该字体的示例修改:
while
for
(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) ))
你的.emacs没有问题。font lock就是这样做的:有几个字体锁定目标—一个用于类型,一个用于变量,一个用于关键字等等。您可以自定义每个目标获得的人脸(例如,M-x自定义,然后是Faces、font lock、font lock Faces),您还可以配置每种语言如何将正则表达式与目标相匹配。因为这些都是关键字,所以它们都映射到关键字face。在
如果您真的愿意,可以编辑python模式设置的font-lock keywords变量来分别匹配每个关键字,而不是仅仅将字体锁定目标命名为facespec,而是给出一个列表(face face face PROP VALUE…),其中包含您喜欢的道具和值。如果你真的想这么做的话,你真的想看看文件。在
完整的细节在手册的“基于搜索的字体化”(GNUEmacs23.4中的23.6.2;在您的版本中可能有所不同,但是您可以从字体锁定定制页面很容易地找到它)。在
它在这里实现:
https://github.com/pdee/pdee
基本上代码库是python的-模式.el,但附带内联pymac、公司模式、自动完成
或者通过集市买到:
bzr branch lp:python-mode/components-python-mode
它是python的开发分支-模式.el在
因为下列关键字中的
ALL
在python.el
中定义为python-font-lock-keywords
,因此您需要用不同的字体来替换其中的一些关键字,或者破解源代码,使这些相同的关键字具有不同的字体:“and”“del”“from”“not”“while”“as”“elif”“global”“or”“with”“assert”“else”“if”“pass”“yield”“break”“exece”“nonlocal”“self”“中”“raise”“continue”“finally”“中”“pass”“yield”“exec”“nonlocal”“self”“的”“return”“def”“。”。在
下面的代码是一个示例,说明如何对
python.el
中已定义的一些关键字使用python-font-lock-keywords
在本例中,while
用粗体表示蓝色,for
用粗体和斜体表示。python-font-lock-keywords
未被特殊定义的字体字体所压倒的字体将默认为font-lock-keyword-face
我还包含了该字体的示例修改:你的.emacs没有问题。font lock就是这样做的:有几个字体锁定目标—一个用于类型,一个用于变量,一个用于关键字等等。您可以自定义每个目标获得的人脸(例如,M-x自定义,然后是Faces、font lock、font lock Faces),您还可以配置每种语言如何将正则表达式与目标相匹配。因为这些都是关键字,所以它们都映射到关键字face。在
如果您真的愿意,可以编辑python模式设置的font-lock keywords变量来分别匹配每个关键字,而不是仅仅将字体锁定目标命名为facespec,而是给出一个列表(face face face PROP VALUE…),其中包含您喜欢的道具和值。如果你真的想这么做的话,你真的想看看文件。在
完整的细节在手册的“基于搜索的字体化”(GNUEmacs23.4中的23.6.2;在您的版本中可能有所不同,但是您可以从字体锁定定制页面很容易地找到它)。在
它在这里实现:
https://github.com/pdee/pdee
基本上代码库是python的-模式.el,但附带内联pymac、公司模式、自动完成
或者通过集市买到:
它是python的开发分支-模式.el在
相关问题 更多 >
编程相关推荐