2012-09-21 130 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