Python ansi颜色不显示在emacs窗口中
我知道以前有人问过这个问题的变体。。。但我肯定遇到了另一个问题,因为解决方案对我不起作用。我有一个使用ANSI代码的文本文件,当我Python ansi颜色不显示在emacs窗口中,python,emacs,colors,ansi-escape,Python,Emacs,Colors,Ansi Escape,我知道以前有人问过这个问题的变体。。。但我肯定遇到了另一个问题,因为解决方案对我不起作用。我有一个使用ANSI代码的文本文件,当我cat将该文件发送到终端时,它会很好地显示出来。但是,当我在emacs 23.2.1中查看该文件时,我看到如下情况: ^[[36mText^[[0m 如果重要的话,^[在那一行中都是红色的(emacs将其视为一个字符),其余的文本是黑色的。我希望在emacs编辑器中这一行是浅蓝色的。提到我用python代码制作这个文件可能会有所帮助 python >>&
cat
将该文件发送到终端时,它会很好地显示出来。但是,当我在emacs 23.2.1中查看该文件时,我看到如下情况:
^[[36mText^[[0m
如果重要的话,^[
在那一行中都是红色的(emacs将其视为一个字符),其余的文本是黑色的。我希望在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
文件中的所有内容,以防发生冲突
关于我可以尝试什么,还有其他想法吗?可能是指不起作用的答案,应该可以帮助人们知道什么不应该回答。我发现的解决方案都不起作用。我粘贴的解决方案文本显示了我尝试过的不同内容,然后注释掉(未注释的解决方案也不起作用)。您可以附加该文件吗?当您在其中打开文件时,Emacs会选择什么主要模式?您是否尝试过M-x ansi术语?(我怀疑它本身是否有效,但它可能是解决方案的一部分。)我提供的python代码片段创建了一个测试文件。它以文本模式打开。是的,如果我打开一个
ansi术语
,我可以导航到该文件,cat
它,我会看到颜色。