如何使Emacs终端颜色与Emacs GUI颜色相同?
我在Ubuntu上使用Emacs编程(目前是Hardy Heron),我喜欢Emacs GUI中的默认文本颜色。但是,在终端中运行Emacs时的默认文本颜色是不同的和花哨的如何使Emacs终端颜色与Emacs GUI颜色相同?,emacs,ubuntu,colors,Emacs,Ubuntu,Colors,我在Ubuntu上使用Emacs编程(目前是Hardy Heron),我喜欢Emacs GUI中的默认文本颜色。但是,在终端中运行Emacs时的默认文本颜色是不同的和花哨的 如何使终端中的颜色与GUI中的颜色相匹配?我认为这在一般情况下是不可能的。对于终端,您通常会绑定到一些预定义的颜色(对于像gnome终端这样的东西,您可以调整这些颜色——但您仍然会被固定在预定义的、有限数量的颜色上)。我不确定这是否可行,因为GUI可能比终端具有更多的功能(是的,我最近看到的GUI终端只有16种颜色)。这可能
如何使终端中的颜色与GUI中的颜色相匹配?我认为这在一般情况下是不可能的。对于终端,您通常会绑定到一些预定义的颜色(对于像gnome终端这样的东西,您可以调整这些颜色——但您仍然会被固定在预定义的、有限数量的颜色上)。我不确定这是否可行,因为GUI可能比终端具有更多的功能(是的,我最近看到的GUI终端只有16种颜色)。这可能取决于终端的设置。无论如何,我都会玩
不管怎样,为什么您在终端和GUI中都使用Emacs?通常人们会觉得其中一个很吸引人,并且只使用那一个。如果您远程使用Emacs,可能您希望在本地运行它,并使用它远程打开文件,或者作为根用户。您不必拘泥于终端的默认16(或更少)颜色。现代终端将支持256色(这将使您非常接近您的GUI外观) 不幸的是,让您的终端支持256色是一个棘手的部分,而且每个术语都会有所不同。这给了我很大帮助(但它已经过时了;我肯定在gnome终端和xfce4终端中使用了256色;但您可能必须从源代码构建它们。) 一旦您的终端愉快地使用了256色,神奇的调用就是在您调用emacs之前将终端类型设置为“xterm-256color”,例如:
env TERM=xterm-256color emacs -nw
或者,您可以在.bashrc
文件中设置术语:
export TERM=xterm-256color
通过执行M-x列表颜色显示
,您可以检查它是否在emacs中工作,它将显示16种或全部256种颜色
如果可行,那么像其他人建议的那样查看颜色主题
(你可能会在某个时候感到沮丧;天知道每次我尝试做类似的事情时我都会这样做。但是坚持下去;这是值得的。)反应有点晚,但我有一个问题,黑色背景显示为灰色。我用调色板解决了这个问题
编辑>配置文件首选项>颜色>调色板我能够非常接近emacs 26 我遵循Emacs常见问题解答获得24位颜色: 然后我更改了xterm标准颜色变量:
(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)))
)
(我没有更改“bright*”颜色,因为我没有使用它们,而且它们在X11 emacs中的列表颜色显示中似乎不可用)
通过这两个更改,X11和终端之间的颜色看起来几乎相同。这很好,我添加了“export TERM=xterm-256color”您也可以执行TERM=xterm-256color emacs
以启动带有256色终端的emacs,而不导出环境变量。如果从88或256色终端以及TERM=xterm-256color或TERM=rxvt-unicode-256color运行,则我的emacs会更改其调色板ose选项板是我在X版本中定制的选项板。如果其他人在Mac OS X上的iTerm窗口内搜索运行emacs-nw
的解决方案时来到这里,请注意,您可以告诉iTerm将终端类型报告为xterm-256color
。转到“首选项”➜ 轮廓➜ 终端并设置“报告终端类型”字段。我想实现相反的效果。我喜欢-nw
模式中的语法颜色。这可能吗?您需要知道使用-nw
运行Emacs时默认的颜色主题是什么。我也想知道相反问题的解决方案,如何在Emacs中设置颜色主题以类似于Emacs-nw中的颜色主题?一个常见用例是在本地和远程命令行上使用gui版本,可能通过多个ssh连接层嵌套在不同的机器上。