【发布时间】:2012-07-02 16:58:41
【问题描述】:
我从这里开始使用 zenburn:
https://github.com/djcb/elisp/blob/master/themes/zenburn-theme.el
它使用了很多:inherit 设置。但是,我注意到当我切换到另一个主题 x 然后返回时,x 的前景将与 zenburn 的 :inherit 保持一致。
怎么办?
【问题讨论】:
我从这里开始使用 zenburn:
https://github.com/djcb/elisp/blob/master/themes/zenburn-theme.el
它使用了很多:inherit 设置。但是,我注意到当我切换到另一个主题 x 然后返回时,x 的前景将与 zenburn 的 :inherit 保持一致。
怎么办?
【问题讨论】:
:inherit 在 Emacs 24 中的工作很奇怪……目前尚不清楚当前行为是“功能”还是错误。我通常使用以下方式加载主题:
(load-theme 'zenburn t)
(load "zenburn-theme")
在我的 init.el 的末尾;显式加载应该重置继承。 This is the advice given by the author of that theme,它也适用于其他主题(例如日晒)。
【讨论】:
这仅仅是因为默认情况下 Emacs 自定义主题是累积的。要将一个主题替换另一个主题,仅启用第二个主题是不够的。您必须首先禁用要替换的那个。否则,效果就是合并两者。
@ChristopherMonsanto 描述的加载顺序很可能具有这样做的效果:禁用当前主题,然后启用 zenburn 主题。
FWIW,color 主题(来自库 color-theme.el)与 Emacs custom 主题的工作方式不同——颜色主题没有这个问题/功能。请参阅http://www.emacswiki.org/emacs/ColorTheme 了解更多信息。
【讨论】: