在M-x shell中非特殊的vt100 / ansi-color转义方式

时间:2013-01-06 00:38:43

标签: emacs terminal ansi-colors

M-x shell运行一个试图产生漂亮的颜色输出的程序。但我明白了:

?- true.
^[[1mtrue.^[[0m

这显然不是EMACS的错,因为它将环境变量TERM设置为哑。我打电话的程序忽略了这些信息。

我知道ansi-color-for-comint-mode-on以临时方式解决了这个问题:环境变量TERM仍然很愚蠢。也就是说,相应地解释这个变量的程序根本不会使用转义。

是否有更少的临时方法,设置TERM或类似的?

3 个答案:

答案 0 :(得分:5)

如果使用M-x ansi-color-for-comint-mode-on,则应该只需要自定义ansi-color-for-comint-mode。

答案 1 :(得分:2)

您可以使用M-x ansi-term代替其他shell(M-x shellM-x termM-x eshell)。 Ansi-term旨在使用ansi颜色现成的工作。更好的是,我建议你使用multi-term(你可以阅读更多关于它herehere),它基本上支持ansi-term的所有功能以及轻松切换的能力终端并定义哪些键盘快捷键发送到终端以及哪些键盘快捷键由Emacs捕获和解释。

答案 2 :(得分:1)

也许,符合以下示例:

(setenv "DISPLAY" ":0")

(setenv "PATH" (concat "/home/an_user/bin:"
                (getenv "PATH")))

你可以尝试:

(setenv "TERM" ....)

或者这不是你的想法吗?