如何使Emacs终端颜色与Emacs GUI颜色相同?


70

我在Ubuntu(目前为Hardy Heron)上使用Emacs进行编程,并且我喜欢Emacs GUI中的默认文本颜色。但是,当在终端中运行Emacs时,默认的文本颜色是不同的,并且显得粗糙。

如何使终端中的颜色与GUI中的颜色匹配?


2
我想相反。我喜欢-nw模式下的语法颜色。那可能吗?
aL3xa 2010年

您需要知道运行Emacs with时默认的颜色主题-nw是什么。
SabreWolfy 2012年

2
我也想知道解决相反问题的方法,如何在emacs中将颜色主题设置为类似于emacs -nw中的颜色主题?
巴特·斯纳普

Answers:


121

您不必坚持使用终端的默认16种(或更少)颜色。现代终端将支持256色(这将使您非常接近GUI外观)。

不幸的是,让您的终端支持256种颜色是棘手的部分,并且每个术语都不尽相同。此页面帮我走出了很多(但它最新的了,我肯定得到了256个色在GNOME终端和的xfce4终端的工作,但你可能必须从源代码编译他们。)

一旦您使用256种颜色愉快地使用了终端,魔术调用就是在调用emacs之前将终端类型设置为“ xterm-256color”,例如:

env TERM=xterm-256color emacs -nw

或者,您可以在.bashrc文件中设置TERM :

export TERM=xterm-256color

您可以通过执行来检查它是否在emacs中起作用M-x list-colors-display,它将显示16种或全部256种绚丽的颜色。

如果可行,请color-theme像其他人一样看待。

(您可能会在某个时候感到沮丧;上帝知道我每次尝试做类似的事情时都会做。但是坚持下去,这是值得的。)


2
太好了,我在.profile中添加了“ export TERM = xterm-256color”,因此我不需要每次都运行它。
Matti Pastell

您也可以TERM=xterm-256color emacs在不导出环境变量的情况下使用256色终端启动Emacs。
SabreWolfy 2012年

如果从88或256色终端以及TERM = xterm-256color或TERM = rxvt-unicode-256color运行,我的emacs会更改其调色板。但是这些调色板中没有一个是我在X版本中自定义的。
tijagi 2013年

2
如果有人在寻找emacs -nw在Mac OS X上的iTerm窗口中运行的解决方案时来这里,请注意,您可以告诉iTerm将终端类型报告为xterm-256color。转到首选项➜配置文件➜终端,然后设置“报告终端类型”字段。
mhucka 2014年

2

我不确定是否可以,因为GUI可能比终端更强大(是的,最近我看到GUI终端只有16种颜色)。这可能取决于终端的设置方式。无论如何,我都会玩Color Theme

无论如何,为什么要在终端和GUI中同时使用Emacs?通常,人们会发现一个或另一个很吸引人,并且只使用那个。如果要远程使用Emacs,则可能要在本地运行它,并使用Tramp远程或以root用户打开文件。


一个常见的用例是在本地和远程在命令行上使用gui版本,可能是通过多层ssh连接嵌套在各种机器上。
quazgar

0

回应迟了一点,但我遇到了黑色背景显示为灰色的问题。我通过玩调色板来修复它。

编辑>配置文件首选项>颜色>调色板


0

我能够使用emacs 26非常接近。

我遵循Emacs常见问题解答以获取24位颜色的工作:https : //www.gnu.org/software/emacs/manual/html_mono/efaq.html#Colors-on-a-TTY

然后,我更改了xterm-standard-colors变量:

(set 'xterm-standard-colors
  '(("black"          0 (  0   0   0))
    ("red"            1 (255   0   0))
    ("green"          2 (  0 255   0))
    ("yellow"         3 (255 255   0))
    ("blue"           4 (  0   0 255))
    ("magenta"        5 (255   0 255))
    ("cyan"           6 (  0 255 255))
    ("white"          7 (255 255 255))
    ("brightblack"    8 (127 127 127))
    ("brightred"      9 (255   0   0))
    ("brightgreen"   10 (  0 255   0))
    ("brightyellow"  11 (255 255   0))
    ("brightblue"    12 (92   92 255))
    ("brightmagenta" 13 (255   0 255))
    ("brightcyan"    14 (  0 255 255))
    ("brightwhite"   15 (255 255 255)))
  )

(我没有更改“明亮*”颜色,因为我没有使用它们,而且它们似乎list-colors-display在X11 emacs中也不可用)

有了这两个更改,对我来说X11和终端之间的颜色看起来几乎相同。


-1

我认为,以这种一般方式是不可能的。使用终端,您通常会绑定到一些预定义的颜色(使用gnome-terminal之类的工具,您可以调整这些颜色-但您仍然只能使用预定义的有限数量的颜色)。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.