调整shell模式配色方案

时间:2011-07-01 14:56:24

标签: shell emacs colors themes

emacs shell模式中的颜色方案显示为原色(高饱和度)和外观原始颜色,并且不显示某些颜色(例如紫色):

enter image description here

我想调整颜色,以便它们使用更多的中间色,看起来更柔和,如gnome-terminal:

enter image description here

如何更改shell模式下的配色方案?我在emacs中找不到与shell模式相关的字体分配,这可能是因为颜色是由shell给出的,并且与emacs中的其他字体赋值不同。

2 个答案:

答案 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))