Подтвердить что ты не робот

Цветовая палитра ANSI цветов, помещающая буфер компиляции emacs

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

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

Команда, которую я использую:

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

Версии:

  • Emacs 23.1
  • Огурец 0.8.3
  • Огуречные рельсы 0.3.2

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

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

Любые идеи?

4b9b3361

Ответ 1

Я использую это, чтобы включить интерпретацию цвета 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

Я улучшаю код, поэтому он не загрязняет 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))