我在 Ubuntu(目前是 Hardy Heron)上使用 Emacs 进行编程,我喜欢 Emacs GUI 中的默认文本颜色。但是,在终端中运行 Emacs 时,默认的文本颜色是不同的且花哨的。
如何使终端中的颜色与 GUI 中的颜色相匹配?
您不必拘泥于终端默认的 16 种(或更少)颜色。现代终端将支持 256 种颜色(这将使您非常接近您的 GUI 外观)。
不幸的是,让您的终端支持 256 色是一个棘手的部分,并且因术语而异。这个页面帮了我很多(但它已经过时了;我肯定已经在 gnome-terminal 和 xfce4-terminal 中获得了 256 种颜色;但您可能必须从源代码构建它们。)
一旦您的终端愉快地使用 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
其他人的建议进行查看。
(你可能会在某个时候感到沮丧;上帝知道我每次尝试做类似的事情时都会这样做。但坚持下去;这是值得的。)
我不确定这是否可能,因为 GUI 可能比终端具有更多功能(是的,我最近看到的 GUI 终端只有 16 种颜色)。这可能取决于终端的设置方式。无论如何,我会玩Color Theme。
无论如何,你为什么在终端和 GUI 中都使用 Emacs?一般来说,人们会发现其中一种很有吸引力,并且只使用那个。如果您正在远程使用 Emacs,也许您想在本地运行它并使用Tramp远程打开文件,或者以 root 身份。
我能够与 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 和终端之间的颜色对我来说看起来几乎相同。
响应有点晚,但我遇到了黑色背景显示为灰色的问题。我通过玩调色板来修复它。
编辑 > 配置文件首选项 > 颜色 > 调色板
我认为这是不可能的。使用终端,您通常会绑定到一些预定义的颜色(使用诸如 gnome-terminal 之类的东西,您可以调整这些颜色——但您仍然受限于预定义的、有限数量的颜色)。