当我偶然用geiser +球拍评估emacs中的表单而造成无限循环时,经过一分钟左右的等待,最终emacs将再次开始响应。不幸的是,此后的每次评估至少需要一分钟。通常,在第二次或第三次评估之后,emacs将完全停止响应,这时它会以最快的速度重启Ubuntu计算机。

是否有一些设置可以防止在geiser中发生这种情况,或者有一种方法告诉emacs杀死geiser?

最佳答案

这是挂断电话时的处理方法。
多年来,我不记得Emacs处于不可恢复的状态。

使用C-g。必要时重复。它调用keyboard-quit
这应该会打破任何卡住的循环,并使您能够输入命令。

现在,如果geiser或其他任何进程行为异常,只需杀死缓冲区
与此过程相对应。
C-x C-b将为您提供所有缓冲区的列表。
如果您不认识属于geiser的那个,只需重新启动Emacs
并仅打开geiser,然后再次查看缓冲区列表。

现在,用d标记行为异常的缓冲区。
用x执行删除。而已。您可以
现在重新启动geiser或其他。这种方法是完全通用的。

顺便说一句,重启Ubuntu计算机太过激烈了。
如果无法通过窗口停止应用程序,但是X仍然有效,
使用xkill实用程序。例如,我已将其绑定到Ctrl-Alt-F12
然后,您只需单击不喜欢的窗口,它就消失了。

如果xkill不起作用,请使用以下命令切换到虚拟终端Ctrl-Alt-F1并使用htop杀死应用程序。

07-26 08:51