在Emacs 24.3.1如果我M-X load-theme
并加载另一个主题,它往往会干扰我当前的主题,而不是取代它,给一个非常难看的结果颜色明智。加载一个不同的主题(主题冲突)后Emacs禁用主题
一个例子是在此处,solarized-light
和wombat
主题是矛盾的:
我通过做旧主题的M-X disable-theme
解决这个问题,有没有解决这个问题一个更清洁的方式?
在Emacs 24.3.1如果我M-X load-theme
并加载另一个主题,它往往会干扰我当前的主题,而不是取代它,给一个非常难看的结果颜色明智。加载一个不同的主题(主题冲突)后Emacs禁用主题
一个例子是在此处,solarized-light
和wombat
主题是矛盾的:
我通过做旧主题的M-X disable-theme
解决这个问题,有没有解决这个问题一个更清洁的方式?
首先禁用活动主题肯定有帮助。
如果您添加到您的init.el:
(defun disable-all-themes()
"disable all active themes."
(dolist (i custom-enabled-themes)
(disable-theme i)))
(defadvice load-theme (before disable-themes-first activate)
(disable-all-themes))
功能load-theme
将首先禁用活动的主题,加载新的人之前。
这个建议是一个坏主意。主题_supposed_可以在彼此之上应用。包可能依赖于此。定义一个完成相同事情的新命令会更好。 – Malabarba
可能重复[Emacs:如何获得默认主题?](http://stackoverflow.com/questions/22127337/emacs-how-to-get-the-default-theme) –
abo-abo that does似乎相关(谢谢!),但它不是重复的。这个问题也没有被接受的答案。看看你对这个问题的回答,虽然有相当的启发 - emacs色彩支持能力差是多么的令人惊讶,考虑到程序有多老,以及基本的颜色支持如何。 –
简短的回答,你不能这样做。加载主题时,它会更改所有支持的面的属性,但不会重置面的属性。你可以做的是在加载任何主题之前记录所有标准面的属性,然后在切换到新主题之前使用它们恢复到默认主题。然而,许多软件包指定了自己的面孔,如果自定义主题支持该软件包,那些颜色将不会被恢复。颜色主题是一团糟。 –