为什么shell模式会显示一些垃圾代码?

时间:2013-12-18 16:10:17

标签: shell emacs terminal-emulator ansi-escape

当我在bower中使用M-x shell时,如图所示,会显示一些垃圾代码。

Emacs shell mode

但是M-x ansi-term效果很好

ansi-term

可能是什么问题?是否可以正确显示shell模式?

3 个答案:

答案 0 :(得分:2)

这些符号是ANSI转义序列,终端仿真器用于视觉效果,如更改文本颜色。 shell模式显然不知道默认情况下如何显示这些代码。你想要的可能是Term Mode

  

某些程序(例如Emacs本身)需要详细控制终端屏幕的外观。他们通过发出特殊控制代码来做到这一点术语模式识别并处理ANSI标准的VT100样式转义序列,大多数现代终端都接受它,包括xterm。 (因此,您实际上可以在Emacs Term窗口中运行Emacs。)

答案 1 :(得分:2)

尝试Cucumber's ANSI colors messing up emacs compilation buffer中提供的解决方案:

 (require 'ansi-color)
 (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)

在emacs24上对我有用。


ps:为我喜欢的shell输出着色更多

M-x highlight-regexp RET a regexp, i.e. \[OK\] RET a color (make use of TAB to see choices)

(add-hook 'shell-mode-hook (lambda () (highlight-regexp "\\[OK\\]" "hi-green-b")))

(add-hook 'shell-mode-hook (lambda () (goto-address-mode )))使网址可以访问。寻找文件路径的相同内容。

编辑:使文件路径可点击就像使用compilation-shell-minor-mode:)

一样简单

edit2:我的来源:http://wikemacs.org/index.php/Shell

答案 2 :(得分:0)

WRT to bash,有时设置$ PAGER有帮助,即

PAGER =猫