ANSI цвета огурца испортили буфер компиляции emacs - PullRequest
38 голосов
/ 18 июня 2010

При работе в Emacs я использую команду компиляции (по умолчанию F12) для запуска программ. Когда я запускаю Cucumber в Emacs, Cucumber выплевывает цвета ANSI, которые режим интерпретации Emacs не интерпретирует. Результат ужасен и труден для чтения. Вот фрагмент буфера * compilation *, показывающий уродливое:

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

Используемая мной команда:

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

Версия:

  • Emacs 23,1
  • огурец 0,8,3
  • Огурцы-рельсы 0.3.2

Мир был бы солнечным светом и пение птиц, если бы я мог:

  • Получите Emacs для интерпретации цветовых кодов ANSI в его буфере компиляции, или
  • Получить огурец, чтобы перестать выплевывать цветовые коды ANSI

Есть идеи?

Ответы [ 2 ]

69 голосов
/ 19 июня 2010

Я использую это, чтобы включить цветовую интерпретацию 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)
21 голосов
/ 26 декабря 2013

Я улучшаю код, чтобы он не загрязнял 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))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...