';解析期间文件结束';尝试退出Emacs时

';解析期间文件结束';尝试退出Emacs时,emacs,Emacs,当我试图杀死Emacs时(使用save buffers kill terminal),我得到了错误 End of file during parsing 查看*消息*缓冲区,我看到: progn: End of file during parsing 即使debug on error设置为t,也不会显示任何*Backtrace*缓冲区 我如何知道发生了什么?以找出问题的根源 是的,这意味着多次重新启动和退出Emacs,但这是一个二进制搜索,因此它实际上非常快,即使它基本上是轻率的。重要的是,

当我试图杀死Emacs时(使用
save buffers kill terminal
),我得到了错误

End of file during parsing
查看
*消息*
缓冲区,我看到:

progn: End of file during parsing
即使
debug on error
设置为
t
,也不会显示任何
*Backtrace*
缓冲区

我如何知道发生了什么?

以找出问题的根源

是的,这意味着多次重新启动和退出Emacs,但这是一个二进制搜索,因此它实际上非常快,即使它基本上是轻率的。重要的是,它是系统的,而猜测通常不是

同样,如果您发现问题来自您加载的某个库:递归地将其平分,以查找其中的问题


正如@phils所说,
check parens
也是您的朋友。

您如何调用
save buffers kill terminal
?您是在键入
M-x save buffers kill terminal
,还是在键入
C-x C-C
,或其他内容?另外,您启用了哪些主要模式和次要模式?键入C-xc-C。我有一个相当大的emacs文件,其中包含许多外部包,因此有一种方法可以缩小问题的范围。您可以尝试
C-hkc-xc-C
以确保
save buffers kill terminal
实际上是被调用的函数吗?这听起来很像库中列出的自动加载函数的不平衡参数在
kill-emacs-hook
kill-emacs-query-functions
或类似的程序中
M-x check parens
对于显示问题所在非常有用,但您需要知道在哪个elisp文件中运行它。