Ответ 1
Там уже есть функция для применения цвета к буферам comint. Вам просто нужно включить его в буферах компиляции:
(require 'ansi-color)
(defun colorize-compilation-buffer ()
(toggle-read-only)
(ansi-color-apply-on-region compilation-filter-start (point))
(toggle-read-only))
(add-hook 'compilation-filter-hook 'colorize-compilation-buffer)
Программы цветной записи должны проверять переменную среды TERM
и базу данных terminfo, чтобы проверить, поддерживает ли терминал цвет. На практике многие программы игнорируют это и полагаются на пользовательскую настройку. Emacs по умолчанию установит тип терминала компиляции dumb
, но это можно переопределить, установив переменную compilation-environment
.