Emacs在shell模式下“卡住”了颜色

时间:2014-09-18 04:40:32

标签: emacs eshell

有时,如果我在shelleshell缓冲区中工作ansi-color-for-comint-mode,并运行一个程序,该程序会提供彩色输出,然后在打印彩色文本时崩溃,颜色得到“卡住”,该缓冲区中的所有后续文本都是该颜色。我能够修复它的唯一方法是关闭ansi-color-for-comint-mode,或者杀死shell缓冲区。

有没有更好的方法告诉comint派生的shell缓冲区“重置”ansi颜色代码?

1 个答案:

答案 0 :(得分:3)

这不是最漂亮的解决方案,但这个功能有效 - 它只是发送正确的颜色代码来重置颜色

(defun unstick-ansi-color-codes ()
  (interactive)
  (end-of-buffer)
  (insert "echo -e \"\033[m\"")
  (comint-send-input nil t))