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