emacs缓冲区内ruby测试输出中的怪异控制字符



我使用ruby-test从emacs内部运行rails测试到* ruby-test *缓冲区。它工作得很好,除了输出混乱的ascii颜色控制字符(不确定正确的术语是什么)。

的例子:

MyTest:
    ^[[32m     PASS^[[0m Test Passed (2.85s) 

如果我在终端中运行测试,显示为绿色"PASS"。我能做些什么来让颜色显示在我的输出缓冲区吗?

有一个相关的问题,关于使用M-|运行的命令获得颜色,但我不知道如何将其用于通用缓冲区。

emacs shell命令输出不显示ANSI颜色,但代码

为了让Emacs猜测常规缓冲区的ansi-color模式,使用:

(require 'tty-format)
(add-hook 'find-file-hooks 'tty-format-guess)

您需要先下载ty格式的包。参见:https://unix.stackexchange.com/questions/19494/how-to-colorize-text-in-emacs

看代码,看起来作者做了一堆有问题的决定,但也许这将有助于:

(defadvice ruby-test-runner-sentinel (after add-ansi-colors activate compile)
  (ansi-color-apply-on-region (point-min) (point-max)))

你们有ansi-color吗?El安装并激活?

尝试运行

ansi-color-for-coming-mode-on

函数