更改ls命令的emacs bash颜色

时间:2011-02-22 02:15:09

标签: bash emacs colors

我已启用dircolors,在使用ls时将ls命令更改为文件夹为黄色。问题是,当我在emacs中使用shell时,它仍会显示为深蓝色,这在黑色背景上难以阅读。

如何更改bash shell的颜色,或者更具体地说,更改ls命令的颜色。我的颜色更改适用于已打开的终端,但不适用于emacs。我有支持X的emacs23。

2 个答案:

答案 0 :(得分:10)

如果您使用的是ansi-color,它会采用ansi-color-names-vector中的颜色,默认为:

  ["black" "red" "green" "yellow" "blue" "magenta" "cyan" "white"]

您可以自定义改变ansi-color-names-vector变量的shell输出颜色。

这是我的,与zenburn主题配合得很好。

(setq ansi-color-names-vector
      ["black" "tomato" "PaleGreen2" "gold1"
       "DeepSkyBlue1" "MediumOrchid1" "cyan" "white"])

要查看更改,请评估下一个表达式,然后考虑下一个表达式

(setq ansi-color-map (ansi-color-make-color-map))

我希望这会有所帮助。

答案 1 :(得分:0)

假设您正在使用 M-x shell ......

C-h f shell RET 说:

  

如果是文件~/.emacs_SHELLNAME' exists, or〜/ .emacs.d / init_SHELLNAME.sh',   它作为初始输入给出(但由于时间原因,这可能会丢失   错误,如果shell在启动时丢弃输入。)

因此,如果您在LS_COLORS中导出~/.emacs.d/init_bash.sh环境变量,则Emacs应该使用它。

编辑:嗯......我不再确定shell支持这一点。 (无论如何,我遇到了Vista + Cygwin的问题!)

您可能还想尝试 M-x term M-x ansi-term