简体   繁体   English

快速emacs shell模式?

[英]Fast emacs shell-mode?

I am running an interactive program that outputs about 10 MB [edit: probably closer to 100 MB actually] of ASCII text. 我正在运行一个交互式程序,输出大约10 MB [编辑:实际上可能接近100 MB]的ASCII文本。 The performance within emacs shell-mode (Aquamacs) is unacceptably slow, requiring hours to do this. emacs shell-mode(Aquamacs)中的性能慢得令人无法接受,需要数小时才能完成。 I did execute buffer-disable-undo which speeds things up a bit, but it is still too slow. 我确实执行了buffer-disable-undo,这可以加快速度,但速度仍然太慢。

I tried running the program with the buffer window hidden, but the program finished and when I reselected the buffer, I still have to wait hours for the output to spool. 我尝试在隐藏缓冲区窗口的情况下运行程序,但是程序完成了,当我重新选择缓冲区时,我仍然需要等待数小时才能将输出设置为假脱机。

Is there some command I can give emacs to make performance acceptable? 是否有一些命令我可以给emacs以使性能可以接受? I don't understand how it is even possible for shell-mode to be this slow: this is a 32 GB multicore machine with 64-bit modern multicore CPUs and SSD. 我不明白shell模式怎么可能这么慢:这是一台带有64位现代多核CPU和SSD的32 GB多核机器。

Set the variables comint-move-point-for-output and comint-scroll-show-maximum-output to nil . 将变量comint-move-point-for-outputcomint-scroll-show-maximum-outputnil This prevents the buffer from continuously scrolling to the end of the output, which requires frequent redisplays. 这可以防止缓冲区连续滚动到输出的末尾,这需要频繁重新显示。

Is your interactive program running within shell mode as a shell script? 您的交互式程序是否在shell模式下作为shell脚本运行?

Would it be possible to fork the shell process directly to a shell (not shell mode within emacs), then have emacs just load the results on completion? 是否可以将shell进程直接分支到shell(而不是emacs中的shell模式),然后让emacs在完成时加载结果?

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM