Emacs는 사용자 정의를 저장할 수 없기 때문에 닫을 수 없습니다.

Emacs는 사용자 정의를 저장할 수 없기 때문에 닫을 수 없습니다.

디버거 입력됨--Lisp 오류: (오류 "사용자 정의를 저장할 수 없습니다. init 파일이 완전히 로드되지 않았습니다.") signal(error("사용자 정의를 저장할 수 없습니다. init 파일이 완전히 로드되지 않았습니다.")) error("사용자 정의를 저장할 수 없습니다. init 파일이 로드되지 않았습니다." 완전히 로드되지 않음") custom-save-all()
사용자 정의-저장 변수(bmkp-last-as-first-bookmark-file "~\.emacs.d\bookmarks") 북마크 저장()
북마크-종료-후크 -internal() kill-emacs()
save-buffers-kill-emacs() 핸들 삭제 프레임((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사용자 정의 파일(또는 init 파일)에 저장하는데, 어떤 이유로 init 파일이 성공적으로 로드되지 않았기 때문에 이것이 불가능했습니다.

다시 한번 불편을 끼쳐드려 죄송합니다. 위의 작업을 수행하기 전에Emacs를 종료하려면,북마크 파일 사본을 만들어, 안전을 위해서요.

위의 내용 외에 초기화 파일( ~/.emacs)에 문제가 있는 것 같습니다. @lawlist는 공격 방법을 댓글에서 언급했습니다. 분할 및 정복(즉, 초기화 파일을 재귀적으로 양분하여 문제의 위치를 ​​좁히는 것)입니다.

그리고 다음에 "북마크" 또는 bmkp-(서표접두사)를 역추적이나 오류 메시지에 포함시키면 가능한 한 빨리 문제를 알려주세요. ;-)

관련 정보