2012-09-21 102 views
0

我正在運行Emacs 24.1。在我的.emacs啓動文件,我有以下行:在Emacs 24.x中控制緩衝區和文本的背景顏色ansi-term

(load-theme 'tango-dark t) 

然而,當我運行一個ANSI長期的終端,背景顏色不正常工作:

                                                    enter image description here

有趣的是,目錄,背景顏色似乎是正確的,而對於某些文件的背景色爲黑色(即使緩衝區的背景色爲深灰色)。

我想之一:

1:具有緩衝的背景顏色匹配的文本的背景顏色(在這種情況下黑色)

2:有背景文本的顏色與緩衝區的背景顏色(在這種情況下爲深灰色)相匹配,在這種情況下,它由探戈 - 黑暗配置。

我該怎麼做? (這兩種可能性的答案都是理想的)

+0

我試圖重現'emacs的問題-Q'但有沒有任何顏色和終端使用的顏色不是主題顏色。 –

+0

感謝@wvxvw,您的評論指出了我的正確方向。我在ansi-term的鉤子中使用了'(setq term-default-bg-color「#211E1E」)'。從你的評論中,我明白,從Emacs 24開始,控制緩衝區顏色是我加載的「color-theme」的責任(我認爲這在以前的Emacs版本中並不是這種情況),現在我可以改變它顏色,如果我想'custom-theme'和'customize-face'。如果您提供您的評論作爲答案,我會接受並澄清我的OP。 –

回答

1

由於Emacs 24的主題機制是內置的,它與以前用於相同目的的color-theme庫略有不同,但它非常相似。

我認爲發生的事情是,在應用終端顏色設置之前,主題已被初始化,或者,舊的主題可能用於設置此顏色,而新的主題則不會。

本質上,主題是面孔的集合,相信您可能會使用主題的作者(因此您可以將主題放入Emacs中未內置的面部)。然而,主題也可能會設置其他內容,所以它可以使用custom-theme-set-variables來設置終端背景顏色,或者之前用它來設置終端背景顏色,但不能再設置。

在任何情況下,您應該始終能夠通過自定義面部本身(這將覆蓋主題設置)或自定義主題來自定義該面部。您可以使用的Mx做的第一使用的Mxcustomize-faceRETdefaultRET和第二customize-themeRETtango-darkRET