2014-04-04 74 views
2

在Emacs 24.3.1如果我M-X load-theme並加載另一個主題,它往往會干擾我當前的主題,而不是取代它,給一個非常難看的結果顏色明智。加載一個不同的主題(主題衝突)後Emacs禁用主題

一個例子是在此處,solarized-lightwombat主題是矛盾的:

solarized-light and wombad conflict

我通過做舊主題的M-X disable-theme解決這個問題,有沒有解決這個問題一個更清潔的方式?

+0

可能重複[Emacs:如何獲得默認主題?](http://stackoverflow.com/questions/22127337/emacs-how-to-get-the-default-theme) –

+0

abo-abo that does似乎相關(謝謝!),但它不是重複的。這個問題也沒有被接受的答案。看看你對這個問題的回答,雖然有相當的啓發 - emacs色彩支持能力差是多麼的令人驚訝,考慮到程序有多老,以及基本的顏色支持如何。 –

+0

簡短的回答,你不能這樣做。加載主題時,它會更改所有支持的面的屬性,但不會重置面的屬性。你可以做的是在加載任何主題之前記錄所有標準面的屬性,然後在切換到新主題之前使用它們恢復到默認主題。然而,許多軟件包指定了自己的面孔,如果自定義主題支持該軟件包,那些顏色將不會被恢復。顏色主題是一團糟。 –

回答

2

首先禁用活動主題肯定有幫助。

如果您添加到您的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將首先禁用活動的主題,加載新的人之前。

+2

這個建議是一個壞主意。主題_supposed_可以在彼此之上應用。包可能依賴於此。定義一個完成相同事情的新命令會更好。 – Malabarba