代码之家  ›  专栏  ›  技术社区  ›  Wayne Conrad

Cucumber的ansi颜色使emacs编译缓冲区混乱

  •  38
  • Wayne Conrad  · 技术社区  · 14 年前

    在Emacs中工作时,我使用compile命令(默认为f12)来运行程序。当我在emacs中运行cumber时,cumber会吐出emacs编译模式无法解释的ansi颜色。结果很难看。下面是一个*编译*缓冲区的片段,显示了丑陋的:

    ^[[31m(::) failed steps (::)^[[0m
    

    我使用的命令:

    ( cd ~/lab/rails/todolist && rake cucumber:all )
    

    版本:

    • Emacs 23.1
    • 黄瓜0.83.
    • 黄瓜轨道0.3.2

    如果我能做到的话,世界将是阳光和鸟儿在歌唱:

    • 让Emacs在编译缓冲区中解释ANSI颜色代码,或者
    • 让黄瓜停止吐出ANSI颜色代码

    有什么想法吗?

    2 回复  |  直到 14 年前
        1
  •  69
  •   ataylor    9 年前

    我使用它在编译缓冲区中打开ANSI颜色解释:

    (require 'ansi-color)
    (defun colorize-compilation-buffer ()
      (let ((inhibit-read-only t))
        (ansi-color-apply-on-region (point-min) (point-max))))
    (add-hook 'compilation-filter-hook 'colorize-compilation-buffer)
    
        2
  •  21
  •   gavenkoa    10 年前

    我改进了代码,这样它就不会污染 M-x grep 像命令一样,效率更高:

    (ignore-errors
      (require 'ansi-color)
      (defun my-colorize-compilation-buffer ()
        (when (eq major-mode 'compilation-mode)
          (ansi-color-apply-on-region compilation-filter-start (point-max))))
      (add-hook 'compilation-filter-hook 'my-colorize-compilation-buffer))