请注意,此主题不适用于最新版本的Emacs(24+)。 Emacs现在附带了它自己强大的颜色主题系统(例如,查看评论here),不需要加载外部包color-theme
。
我的.emacs
文件中有以下代码片段,其中我定义了一些别名,允许我使用简短的扩展命令在几个颜色主题之间方便地切换:
(require 'color-theme)
(eval-after-load "color-theme"
'(progn
(color-theme-initialize)
(color-theme-aalto-light)))
;; Aliases to color-themes, e.g. 'M-x a' switches to color-theme-hober
(defalias 'a 'color-theme-hober)
(defalias 'b 'color-theme-aalto-light)
现在,当Emacs加载时,它会正确显示color-theme-aalto-light
主题,当我M-x a
更改为color-theme-hober
时,它也可以正常运行。
问题是当我尝试将颜色主题再次更改回color-theme-aalto-light
时。某些颜色面部保留在旧的颜色主题中,而其他颜色面部则更改为新的颜色主题。我试过不同的颜色主题组合没有运气(颜色面是不总是完全更新,无论我切换的颜色主题)。有什么想法吗?
答案 0 :(得分:9)
这是'color-theme'包中的已知错误。如果该功能对您很重要,请考虑升级到trunk(将来的emacs-24.1),它原生支持更改主题(M-x customize-themes
)。
答案 1 :(得分:2)
颜色主题基本上只是功能,它为某些面部分配新颜色。它们没有什么特别之处,特别是在切换颜色主题之前不会重置面部。如果一个颜色主题A为某个面设置颜色而另一个B没有设置颜色,则B将简单地接管A为该面定义的颜色。
这或多或少是设计上的,没有什么,你可以做,保存修改颜色主题以覆盖所有定义的面(这是相当繁琐,也是非常不可能的,因为任何elisp库都可以定义自己的面)。