Цветовая палитра 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
Любые идеи?
Ответы
Ответ 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))