当 Emacs 卡死时

3

有没有什么组合键可以在emacs中关闭一个进程?偶尔我会在Common Lisp REPL中犯一些新手错误,导致我的Emacs卡住。在Mac上,我只能强制退出,因为我找不到重新控制Emacs的方法。但如果可能的话,我宁愿不关闭Emacs。


在某些情况下,针对阻塞进程的killkillall命令可以产生奇效。但我不知道有任何按键可以做到这一点。 - cobbal
3
如果你陷入了一个无限循环,你应该能够按下Ctrl-G来跳出它。 - clstrfsck
@cobbal 但我需要能够实际运行M-x来输入kill,对吧?当它被锁定时,我似乎什么也做不了。 - johnbakers
@OpenLearner 我的意思是从命令行开始。例如,如果您正在使用sbcl,则命令killall sbcl可能会让emacs重新启动。它还将终止您正在运行的所有其他sbcl程序,因此在使用之前请三思。 - cobbal
1个回答

8
  1. 尝试使用C-gkeyboard-quit)命令。多次重复操作。

  2. 尝试使用C-]abort-recursive-edit)命令。多次重复操作。

  3. 尝试使用ESC ESC ESCkeyboard-escape-quit)命令。多次重复操作。

  4. 放弃并杀死进程。


在第4步中,具体来说:pkill -SIGUSR2 -i emacs将强制emacs进入调试模式,然后您可以尝试进行调试(!)或只需键入q退出,然后干净地重新启动emacs。我有一个shell别名pokemacs ='pkill -SIGUSR2 -i emacs',因为这在我的Macintosh / Spacemacs上经常发生。 - mike

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接