Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/emacs/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使Emacs终端颜色与Emacs GUI颜色相同?_Emacs_Ubuntu_Colors - Fatal编程技术网

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

如何使Emacs终端颜色与Emacs GUI颜色相同?,emacs,ubuntu,colors,Emacs,Ubuntu,Colors,我在Ubuntu上使用Emacs编程(目前是Hardy Heron),我喜欢Emacs GUI中的默认文本颜色。但是,在终端中运行Emacs时的默认文本颜色是不同的和花哨的 如何使终端中的颜色与GUI中的颜色相匹配?我认为这在一般情况下是不可能的。对于终端,您通常会绑定到一些预定义的颜色(对于像gnome终端这样的东西,您可以调整这些颜色——但您仍然会被固定在预定义的、有限数量的颜色上)。我不确定这是否可行,因为GUI可能比终端具有更多的功能(是的,我最近看到的GUI终端只有16种颜色)。这可能

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


如何使终端中的颜色与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连接层嵌套在不同的机器上。