emacs shell模式中的颜色方案显示为原色(高饱和度)和外观原始颜色,并且不显示某些颜色(例如紫色):
我想调整颜色,以便它们使用更多的中间色,看起来更柔和,如gnome-terminal:
如何更改shell模式下的配色方案?我在emacs中找不到与shell模式相关的字体分配,这可能是因为颜色是由shell给出的,并且与emacs中的其他字体赋值不同。
答案 0 :(得分:18)
当在shell模式下运行的程序发出ANSI转义字符以将显示颜色设置为例如洋红色时,Emacs截取这些转义字符并使用该确切的前景颜色" magenta"创建彩色叠加。因此,这里没有颜色主题交互,也没有特定于shell的自定义项。
拦截是由ansi-color.el
中的函数进行的,看起来你可以自定义ansi-color-names-vector
,所以要使用" PaleBlue" for" blue",M-x customize RET ansi-color-names-vector
,或尝试在emacs配置中添加以下内容:
(setq ansi-color-names-vector
["black" "red" "green" "yellow" "PaleBlue" "magenta" "cyan" "white"])
要查看可用的颜色名称,请使用M-x list-colors-display
,或输入十六进制颜色,例如"#ccccff"
答案 1 :(得分:1)
有些color-themes旨在让终端看起来不错。如果它们都不适合,您可以使用一个作为您自己主题的起点。我选择适合X /终端的主题:
(if (eq (window-system) 'x)
(color-theme-gray30)
(color-theme-emacs-nw))