2014-09-30 29 views
4

我在Ubuntu 14.04.1下使用Emacs 24.3。我想通过GTK接口和Gnome终端使用它,其中emacs -nw。不幸的是,我使用的任何主题的颜色在终端中都略有不同。为什么Gnome终端中的Emacs语法突出显示受终端颜色主题的影响?

我已经设置好了,这样在GNOME终端,TERM=xterm-256color。但是,我还定制了自己的终端颜色 - “黑”其实是#151515,“红”是#DA4939等Emacs是得到接近以显示正确的颜色为每个主题,但从来没有完全正确的。我正在使用的主题是deftheme-主题风格。

我不明白为什么自定义终端颜色会影响到这一点 - 与TERM=xterm-256color一样,Emacs应该可以访问比通常的16色更大的调色板。在list-colors-display的输出中,black被列为#000000,但显示为#151515;但是,还有一个color-16也被列为#000000并正确显示。所以Emacs确实能够显示#000000

Emacs GTK vs terminal comparison

在左边是Emacs的GTK,其中正确显示主题颜色。在右侧是emacs -nw在Gnome终端中运行,其中所有颜色与主题指定的颜色略有不同。我用这张照片的主题只是一个例子,这发生在任何主题。我的完整config is on Github

我怎样才能Emacs在不删除终端调色板我的定制显示在GNOME终端正确的主题颜色?

+0

哈!我甚至无法让我的_font_在窗口和终端中显示相同的内容。你应该数你的祝福。 :) – dg99 2015-01-15 19:47:19

+0

@ dg99我只用一样的东西:P – detly 2015-01-16 01:28:29

回答

4

几个问题:

1)我相信,当你定制了“终端颜色”,它们重叠的256色调色板的第16项的颜色。因此,如果emacs告诉终端使用0-15号颜色,它们会以您设置的颜色出现在您的终端首选项中。它似乎没有具体影响你,但很好意识到。

2)对于剩余的256种颜色,我相信只有256个(也许241,如果你的终端重新着色前16)的颜色,你may choose from

除非你选择你的GTK主题颜色精确匹配colours that are available in the 256 palette,让他们有相同的不会是可能的。看起来你的emacs在自己选择256个最接近的可用颜色方面做得相当不错。

如果你想看到我在行动中谈到,尝试下载并运行一个脚本,如本show-all-256-colors.py script并在终端上运行它。我会打赌,当你改变你的终端颜色,你会看到条目000015相应地改变,而其余的颜色总是相同的。哈哈!

+0

我正在考虑用“常规”配色方案创建一个新的终端配置文件,专门用于emacs。但是如果我理解了第一点,这可能无济于事。经过反思,256色调色板将无法显示用三字节'#XXYYZZ'方案表示的全部可能颜色。 – detly 2015-01-15 07:34:18