我可以针对每种模式的颜色主题进行调整吗?

Kir*_*ser 5 emacs color-scheme themes

我正在使用Ubuntu 11.04中的Emacs 23.2.1.我已经安装了purcell的Solarized色彩主题端口,但是我想调整一些面孔以使我的Python缓冲区看起来更像Solarized Vim截图.编辑颜色主题很容易,因此我总是使用我喜欢的颜色,但这也会在C模式下改变它们,我想避免这种情况.

具体来说,这是builtin-face的默认设置:

(font-lock-builtin-face ((t (:foreground ,green))))
Run Code Online (Sandbox Code Playgroud)

在Python模式 - 而且只有Python模式 - 我想改用它:

(font-lock-builtin-face ((t (:foreground ,blue))))
Run Code Online (Sandbox Code Playgroud)

我非常喜欢通过修补一些逻辑到颜色主题定义做出这种改变,这样我可以有一张纸条写着:"这改变了上游送我调整只是 Python的突出".如果做不到这一点,我会满足于我的init.el.不过,我宁愿把它与主色彩主题打包在一起.

这可能吗?抓一点.这是Emacs; 我知道这是可能的!但是我怎么能这样做呢?

Tho*_*mas 5

这应该可以使用面部重新映射.即使你更喜欢修补颜色主题定义,我也会争论在你的init.el文件中放入类似下面这些内容的东西,因为它是一种更"标准"的做法:

(add-hook 'python-mode-hook 'remap-builtin-face-blue)

(defun remap-builtin-face-blue ()
  (let ((blue "#2075c7"))
    (set (make-local-variable 'face-remapping-alist)
         `((font-lock-builtin-face :foreground ,blue)))))
Run Code Online (Sandbox Code Playgroud)