已经有一个将颜色应用于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会将编译终端类型设置为哑,但可以通过设置编译环境变量来覆盖编译终端类型。