Shell 快速emacs外壳模式?

Shell 快速emacs外壳模式?,shell,emacs,aquamacs,Shell,Emacs,Aquamacs,我正在运行一个交互式程序,输出大约10MB的ASCII文本。emacs外壳模式(Aquamacs)中的性能慢得令人无法接受,需要数小时才能完成。我确实执行了buffer disable undo,这会加快速度,但仍然太慢 我尝试在缓冲区窗口隐藏的情况下运行程序,但是程序完成了,当我重新选择缓冲区时,我仍然需要等待数小时,等待输出到spool 我是否可以给emacs一些命令,使性能可以接受?我不明白shell模式怎么会这么慢:这是一台32GB多核机器,配有64位现代多核CPU和SSD 为输出设置变

我正在运行一个交互式程序,输出大约10MB的ASCII文本。emacs外壳模式(Aquamacs)中的性能慢得令人无法接受,需要数小时才能完成。我确实执行了buffer disable undo,这会加快速度,但仍然太慢

我尝试在缓冲区窗口隐藏的情况下运行程序,但是程序完成了,当我重新选择缓冲区时,我仍然需要等待数小时,等待输出到spool


我是否可以给emacs一些命令,使性能可以接受?我不明白shell模式怎么会这么慢:这是一台32GB多核机器,配有64位现代多核CPU和SSD

为输出设置变量
comint移动点
comint滚动显示最大输出
nil
。这可以防止缓冲区连续滚动到输出的末尾,这需要频繁重新显示。

您的交互式程序是否以shell脚本的形式在shell模式下运行

是否可以将shell进程直接分叉到shell
(不是emacs中的shell模式),然后让emacs在完成时加载结果?

还没有尝试过,不确定是否应该在输出打印时加载结果。但是,即使缓冲区窗口没有显示输出的结束,输出也很慢。例如,现在缓冲区显示我在大约2000000行,输出是从大约2200000行开始的。我所能看到的只是滚动条指示慢慢向上移动。没有什么是重新发现。虽然可能输出比10MB更接近50MB,但在这种情况下,我认为你已经尽力了。它必须处理输出,以便更新滚动条和模式行百分比。我认为有一个变量表示模式行中显示位置和百分比的最大缓冲区大小,但我不记得它是什么。谢谢。令我沮丧的是,emacs维护人员似乎把所有的时间都花在了没有人想要或需要的愚蠢功能上,比如网页浏览,而人们使用emacs进行(编程)的基本工具是有缺陷的或脆弱的。仍然没有合适的C++模式,例如,只有50个不同的包,它们是不可能安装的,实际上不工作(以我的经验)。如果他们想使用web浏览器,很好,但首先要让基本的东西工作起来:代码浏览、程序开发等。Emacs是最古老、最流行的开源项目之一。它是由用户维护的,它拥有的功能是他们想要的。显示多兆字节文件的连续输出不是常见的活动。这可不是什么“基本的东西”。你能详细介绍一下你的情况吗?最重要的是,你到底是如何运行这个程序的?例如,通过
M-x编译
或在
M-x shell中
缓冲区或…?我使用M-x shell创建缓冲区。我不在那个缓冲区中禁用撤销。我在缓冲区内运行lldb,在lldb内运行我的程序。它在开发过程中会大量打印,我喜欢监控输出;这也是为什么它应该是互动的。这是在emacs下开发的一种常见的常规方法-这是shell模式的优点之一,您不需要一直使用单独的日志文件。除了emacs运行速度慢得可笑之外,它还可以正常工作。我总是可以重写我的程序来解决emacs问题,但我宁愿不重写。我希望经过30或40年的开发,emacs将有一种方法可以实现相当快的shell模式。