调试器进入--Lisp 错误:(错误“无法保存自定义;初始化文件未完全加载”)信号(错误(“无法保存自定义;初始化文件未完全加载”))错误(“无法保存自定义;初始化文件未完全加载”)custom-save-all()
customize-save-variable(bmkp-last-as-first-bookmark-file“~\.emacs.d\bookmarks”)bookmark-save()
bookmark-exit-hook-internal()kill-emacs()
save-buffers-kill-emacs()handle-delete-frame((delete-frame(#)))
从有一天我在使用 emacs 时遇到了这个问题:由于上述错误消息,我无法结束它。
我该如何解决这个问题?
Windows 7 上的 Emacs 版本 GNU Emacs 24.3.1 (i386-mingw-nt6.1.7601)
我没有故意更改任何内容,也许这与 Windows 更新或我们网络结构的一些变化有关?.emacs 文件保存在我的主目录中,该目录存储在我的 Windows-7 用户配置文件中(因此以某种方式与我们的服务器同步)。
答案1
很抱歉给您添麻烦了。您遇到了书签+漏洞。
尝试评估此代码,重新定义该函数:
(defun bookmark-exit-hook-internal () ; This goes on `kill-emacs-hook'.
"Save currently defined bookmarks and perhaps bookmark menu-list state.
Run `bookmark-exit-hook', then save bookmarks if they were updated.
Then save menu-list state to file `bmkp-bmenu-state-file', but only if
that option is non-nil."
(run-hooks 'bookmark-exit-hook)
(when (bookmark-time-to-save-p t)
(condition-case err ; Do NOT raise error. (Need to be able to exit.)
(bookmark-save)
(error (if (fboundp 'display-warning)
(display-warning 'bookmark-plus (error-message-string err))
(message (error-message-string err))
(sit-for 4))
nil)))
(bmkp-save-menu-list-state))
我已经更新了源文件bookmark+-1.el
现在有了该定义。它应该可以解决问题 —— 也就是说,它应该向您显示错误消息,但让您退出 Emacs。
如果此更改不能解决问题,请通过电子邮件与我联系,我会修复它。
问题是书签+版本将bookmark-save
选项的更新值保存bmkp-last-as-first-bookmark-file
到您的自定义文件(或初始化文件),而这是不可能的,因为由于某种原因,您的初始化文件未成功加载。
再次对您造成的麻烦表示抱歉。 在进行上述任何操作之前为了退出 Emacs,复制你的书签文件,以确保安全。
除上述内容之外,您的 init 文件显然存在问题(~/.emacs
)。@lawlist 在评论中提到了如何解决这个问题:分而治之,也就是递归地二分您的 init 文件以缩小问题的位置。
下次您看到“书签”或bmkp-
(书签如果您在回溯或错误消息中发现“前缀”,请尽快让我知道您的问题。;-)