我正在使用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;我知道它是可能的!但是我怎么能这样做呢?
答案 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)))))