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

我在 Ubuntu 上使用 Emacs 编程(目前是 Hardy Heron) ,我喜欢 Emacs GUI 中的默认文本着色。但是,当 Emacs 在终端中运行时,默认的文本着色是不同的,而且花哨。

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

53647 次浏览

我不认为这是可能的,在这样一个一般的方式。使用终端时,您通常会绑定到一些预定义的颜色(使用 gnome-Terminal 时,您可以调整这些颜色——但是仍然会绑定到预定义的、有限数量的颜色)。

我不确定这是否可行,因为 GUI 可能比终端有更多的功能(是的,我最近看到 GUI 终端只有16种颜色)。这可能取决于如何设置终端。无论如何,我都会使用 色彩主题

不管怎样,为什么在终端和 GUI 中都使用 Emacs?一般来说,人们发现其中之一或其他吸引力,只使用那一个。如果远程使用 Emacs,可能需要在本地运行它,并使用 荡妇远程打开文件,或者作为 root 用户。

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

不幸的是,让你的终端支持256种颜色是棘手的部分,而且不同的期限。这一页帮了我很大的忙(但是 已经过时了; 我已经在 gnome-Terminal 和 xfce4-Terminal 中使用了256种颜色; 但是你可能需要从源代码开始构建它们)

一旦你的终端使用了256种颜色,神奇的调用就会在你调用 emacs 之前将你的终端类型设置为“ xterm-256 color”,例如:

env TERM=xterm-256color emacs -nw

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

export TERM=xterm-256color

你可以检查它是否工作在 emacs 做 M-x list-colors-display,这将显示你要么16,或所有256辉煌的颜色。

如果有效,那么按照其他人的建议查看 color-theme

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

回复有点晚,但我的问题是黑色背景显示为灰色。我用调色板把它修好了。

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

我已经很接近 Emacs 26了。

我按照 Emacs 常见问题解答(FAQ)获得了24位颜色的工作原理: Https://www.gnu.org/software/emacs/manual/html_mono/efaq.html#colors-on-a-tty

然后我改变了 xterm-standard-color 变量:

(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)))
)

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

这两个变化,颜色看起来几乎相同之间的 X11和终端为我。