Emacs 無法關閉,因為它無法保存自訂內容

Emacs 無法關閉,因為它無法保存自訂內容

調試器進入- Lisp 錯誤:(錯誤“無法保存自定義;初始化文件未完全加載”)信號(錯誤(“無法保存自定義;初始化文件未完全加載”))錯誤(“無法保存自定義;初始化文件未完全載入」)未完全載入") 自訂儲存全部()
自訂儲存變數(bmkp-last-as-first-bookmark-file "~\.emacs.d\bookmarks") 書籤儲存()
書籤退出掛鉤-internal()kill-emacs()
save-buffers-kill-emacs()handle-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,複製您的書籤文件,只是為了安全起見。

除了上述情況之外,您的初始化檔案 ( ) 顯然還有問題~/.emacs。 @lawlist 在評論中提到如何解決這個問題:分而治之,也就是遞歸地平分你的初始化文件以縮小問題的位置。

下次當您看到「書籤」或bmkp-書籤前綴)在回溯或錯誤訊息中,請盡快讓我知道您的問題。 ;-)

相關內容