在emacs中扩展/自定义现有的颜色主题

时间:2012-07-19 16:19:21

标签: emacs customization

使用emacs-24.1,我们如何在emacs中扩展/自定义现有的颜色主题?我试过这个

(custom-theme-set-faces
'tango
'(ido-first-match ((t (:foreground "008800" :weight bold))))

当我加载探戈时它工作正常。但是当我把它放在.emacs.d / init.el文件中时,它失败了,因为当时没有加载探戈而且emacs抱怨未定义的探戈。这当然不会有帮助,因为我倾向于使用(load-theme ...)定期更改主题。我正在看的是加载主题时要运行的某种钩子。有可能吗?

当然,我可以修改tango-theme.el文件但这不是我的目标。我想扩展现有的主题。我在我的init文件中尝试过这个

(load-theme 'tango-dark)

    (custom-theme-set-faces
    'tango-dark
    '(ido-first-match ((t (:foreground "#00cdef" :weight bold))))

(deftheme tango)

    (custom-theme-set-faces
    'tango
    '(ido-first-match ((t (:foreground "#008800" :weight bold))))

这对于探戈主题来说效果很好..但是探戈黑暗显示与探戈相同的颜色。因此,如何在加载主题之前自定义现有主题,或者在加载主题时设置自定义主题。

2 个答案:

答案 0 :(得分:2)

当我想定义一个新主题时,我会修改一个给定的主题,然后我调用(color-theme-print)。此函数将生成一个有助于恢复我修改的颜色主题的函数。将生成的函数包含在.emacs中。

color-theme-print用于生成新的颜色主题。

答案 1 :(得分:1)

您要查找的命令是eval-after-load