コンパイルモードの Emacs に ansi-color のサポートを追加した人はいますか? その場合、アクティブな端末が ANSI エスケープ カラーリングをサポートしていることを確認するために、カラー書き込みプログラムはどのプロパティ/属性をチェックする必要がありますか。
質問する
6622 次
5 に答える
71
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
更新: Emacs 24.5 では、(toggle-read-only)
上記のコードの への 2 つの呼び出しは不要であることに注意してください。
于 2012-11-15T23:23:58.430 に答える
34
汚染しない私の最適化されたソリューションM-x grep
(のみM-x 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))
于 2013-12-26T17:19:31.893 に答える