私はこの質問の変形が以前に尋ねられたことを知っています...しかし、解決策が私のために働いていないので、私は別の問題を抱えているに違いありません。cat
ターミナルにファイルを送信するとうまく表示されるANSIコードを使用するテキストファイルがあります。しかし、23.2.1のファイルをemacsすると、次のように表示されます。
^[[36mText^[[0m
重要な場合は^[
、その行の両方が赤であり(emacsはそれを1つの文字として扱っています)、残りのテキストは黒です。emacsエディターではその線が水色になると思います。このファイルをPythonコードで作成していることに言及すると役立つ場合があります
python
>>> myfile = open("test.txt","w")
>>> myfile.write("\033[36mText\033[0m\n")
>>> myfile.close()
そのテキストを生成します。周りを見回して、私はいくつかの解決策を試しました:
(require 'ansi-color)
;(autoload 'ansi-color-for-comint-mode-on "ansi-color" nil t)
(add-hook 'shell-mode-hook 'ansi-color-for-comint-mode-on)
;(setq ansi-term-color-vector [unspecified "#3f3f3f" "#cc9393" "#7f9f7f" "#f0dfaf" "#8cd0d3" "#dc8cc3" "#93e0e3" "#dcdccc"])
;(defun colorize-compilation-buffer ()
; (toggle-read-only)
; (ansi-color-apply-on-region (point-min) (point-max))
; (toggle-read-only))
;(add-hook 'compilation-filter-hook 'colorize-compilation-buffer)
;(defadvice display-message-or-buffer (before ansi-color activate)
; "Process ANSI color codes in shell output."
; (let ((buf (ad-get-arg 0)))
; (and (bufferp buf)
; (string= (buffer-name buf) "*Shell Command Output*")
; (with-current-buffer buf
; (ansi-color-apply-on-region (point-min) (point-max))))))
しかし、これらはどれも機能しませんでした。私はemacs/lispの専門家ではないので、ここでは自分自身ではかなり無力です。.emacs
また、競合が発生した場合に備えて、ファイル内の他のすべてをクリアしようとしました。
私が試すことができる他のアイデアはありますか?