shell - Colorear ANSI En Modo Compilación
emacs text-coloring (2)
Mi solución optimizada que no contamina Mx grep
(solo para Mx compile
):
(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))
¿Alguien ha agregado soporte para ansi-color en Emacs en modo compilación? Si es así, ¿qué propiedad / atributo debe verificar el programa de escritura de color para asegurarse de que su terminal activo admita la coloración de escape ANSI?
Ya existe una función para aplicar color a los buffers de comint. Simplemente necesitas habilitarlo en los buffers de compilación:
(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)
Los programas de escritura en color deben verificar la variable de entorno TERM
y la base de datos terminfo para verificar si el terminal es compatible con el color. En la práctica, muchos programas ignoran esto y dependen de la configuración del usuario. Emacs establecerá el tipo de terminal de compilación en dumb
de forma predeterminada, pero esto puede anularse configurando la variable de compilation-environment
.