【发布时间】:2012-09-08 03:09:24
【问题描述】:
这里是相对 Emacs 新手,只是试图调整我的编程工作流程以适应 emacs。到目前为止,我已经发现了 shell-pop,并且我非常喜欢在需要敲击奇怪命令时弹出的按需终端。
到目前为止,我对 Emacs 的了解是,shell 是一个“哑”终端,不支持任何 ansi 控制代码,这使得它与试图在终端模拟器上绘制复杂 UI 的 ncurses 之类的东西不兼容.这就是为什么你不能在 shell 模式下使用 less 或 top 或类似的。
但是,我似乎在使用 ansi-term 时遇到了问题,这并不是它所宣称的一切。当然,它运行less 或git log 甚至nano 都没有问题,但有一些东西在ansi-term 中运行时似乎无法正常显示,例如@987654329 @ 和 nosetests。我不太确定它的名称是什么,但apt-get 的输出的特点是实时更新最后一行显示的内容,然后在该行上方滚动出不变的文本行。它似乎介于less 之类的东西和cat 之类的更愚蠢的东西之间。不知何故ansi-term 根本不喜欢这个,而且我得到非常乱码的输出,它似乎只在一行上输出所有内容,或者只是通常丢失它的位置并随机输出所有内容。在nosetests 的情况下,它开始正常,但如果任何库吐出任何 STDERR,输出都会以类似的方式进入地狱。
通过一些摆弄,似乎可以通过混合 C-l 和 RET 来解决这个问题,但它并不总是可靠的。
有人知道这里发生了什么吗?有什么方法可以修复ansi-term 以便它可以正确显示所有内容吗?或者是否有其他一些我不知道的更好的模式?理想情况下,我想要像 Gnome Terminal 这样轻松“正常工作”的东西,它可以运行上述所有程序而不会出现任何问题。
谢谢!
【问题讨论】:
-
term的行为似乎比ansi-term稍好,但我不清楚这两者之间有什么区别。
标签: shell emacs terminal ansi-term