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

时间:2011-04-08 19:58:28

标签: emacs themes color-scheme

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

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

(font-lock-builtin-face ((t (:foreground ,green))))

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

(font-lock-builtin-face ((t (:foreground ,blue))))

我希望通过将一些逻辑修补到颜色主题定义中来进行此更改,以便我可以在上游发送一个说明“此更改只是 Python突出显示”的调整。如果做不到这一点,我会满足于我的init.el。不过,我宁愿把它与主色彩主题打包在一起。

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

1 个答案:

答案 0 :(得分:5)

这应该可以使用Face Remapping。即使您更喜欢修补颜色主题定义,我也会争辩在您的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)))))