有时,如果我在shell
或eshell
缓冲区中工作ansi-color-for-comint-mode
,并运行一个程序,该程序会提供彩色输出,然后在打印彩色文本时崩溃,颜色得到“卡住”,该缓冲区中的所有后续文本都是该颜色。我能够修复它的唯一方法是关闭ansi-color-for-comint-mode
,或者杀死shell缓冲区。
有没有更好的方法告诉comint派生的shell缓冲区“重置”ansi颜色代码?
答案 0 :(得分:3)
这不是最漂亮的解决方案,但这个功能有效 - 它只是发送正确的颜色代码来重置颜色
(defun unstick-ansi-color-codes ()
(interactive)
(end-of-buffer)
(insert "echo -e \"\033[m\"")
(comint-send-input nil t))