3

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

?- 真的。
^[[1m真的。^[[0米

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

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

是否有一种不那么特别的方法,设置 TERM 或类似的方法?

4

3 回答 3

5

如果 Mx ansi-color-for-comint-mode-on 做到了,定制 ansi-color-for-comint-mode 应该是你所需要的。

于 2013-01-13T16:09:29.893 回答
2

您可以使用M-x ansi-term而不是其他 shell(M-x shellM-x termM-x eshell。Ansi-term 旨在使用现成的 ansi 颜色。甚至更好的是,我建议您使用multi-term(您可以在此处此处阅读更多信息),它基本上支持 ansi-term 的所有功能以及在终端之间轻松切换并定义哪些键盘快捷键发送到终端以及 Emacs 捕获和解释的终端。

于 2013-01-23T18:08:41.483 回答
1

也许,根据下面的例子:

(setenv "DISPLAY" ":0")

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

你可以试试:

(setenv "TERM" ....)

或者这不是你的想法?

于 2013-01-13T14:09:31.507 回答