命令在 emacs shell 中运行速度是否慢得多?我怎样才能防止这种情况但仍然使用它?

Pal*_*han 5 unix emacs

今天我在 emacs shell 中运行了一个这样的命令:

./someBinary | grep foo | cut -c30- | sort | uniq -c
Run Code Online (Sandbox Code Playgroud)

这在 bash 中需要一点但不那么长(大约 15 秒),因为输出很容易超过一百万行。然而,当我在 emacs shell 中运行这个命令时,我等了一个多小时,它仍在运行,如果我检查top. 我想知道这是不是因为 emacs 实现了我在 lisp 中使用的 unix 工具——如果这是原因,是否有办法让它默认为系统工具。

use*_*342 3

Emacs 捕获 shell 缓冲区中的最终输出,并应用字体锁定和其他分析(例如行号计数)来显示它。它还会滚动显示屏以显示最新的输出。虽然 Emacs 可以剔除病态的长命令输出,但它并没有真正针对数百万行的大量输出进行优化,因此它的性能明显比终端模拟器差,从而减慢了整个管道的速度。

如果您对输出不感兴趣,请将其重定向到/dev/null或 to tail -500,这就是您在典型的终端回滚中看到的内容。