カスタマイズを保存できないため、Emacs を閉じることができません

カスタマイズを保存できないため、Emacs を閉じることができません

デバッガーに入りました--Lisp エラー: (エラー "カスタマイズを保存できません。初期化ファイルが完全にロードされていません") signal(エラー ("カスタマイズを保存できません。初期化ファイルが完全にロードされていません")) error("カスタマイズを保存できません。初期化ファイルが完全にロードされていません") 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 Update またはネットワーク構造の変更に関係している可能性があります。.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カスタム ファイル (または init ファイル) に保存しますが、何らかの理由で init ファイルが正常に読み込まれなかったため、これは不可能でした。

再度お手数をおかけして申し訳ございません。 上記のいずれかを行う前にEmacsを終了するには、ブックマークファイルのコピーを作成する念のため。

上記以外に、明らかに init ファイル ( ~/.emacs) に問題があるようです。@lawlist はコメントで、その対処法として、分割統治法、つまり init ファイルを再帰的に二分して問題の場所を絞り込む方法を挙げています。

そして次に「ブックマーク」またはbmkp-ブックマークバックトレースまたはエラー メッセージに「.prefix」が含まれている場合は、できるだけ早く問題をお知らせください。 ;-)

関連情報