마지막 세션에서 Emacs의 창과 버퍼를 복원하는 방법은 무엇입니까?

마지막 세션에서 Emacs의 창과 버퍼를 복원하는 방법은 무엇입니까?

마지막 세션에서 Emacs의 창과 버퍼를 복원하는 방법은 무엇입니까?

내가 원하는 동작은 웹 브라우저에서 마지막 세션의 모든 탭을 복원할 수 있는 것과 같습니다.

답변1

게다가자동으로복원 중마지막 Emacs 세션상태를 저장하고 원하는 만큼 세션 상태를 저장하고 요청 시 다른 세션에서 원하는 횟수만큼 복원할 수도 있습니다. IOW, 쉽게 전환할 수 있습니다.다른 데스크탑.

가장 쉬운 방법은 라이브러리를 로드하는 것입니다.북마크+키를 사용하여 C-x r K현재 세션 상태를 데스크탑 북마크로 저장합니다. 그런 다음 키를 사용하여 모든 세션에서 데스크톱 북마크를 복원할 수 있습니다 C-x j K.

답변2

.emacs 파일로 이동하여 (desktop-save-mode 1)을 입력하면 현재의 모든 버퍼가 "데스크톱" 파일에 저장됩니다. 프레임의 실제 레이아웃은 저장되지 않지만 "레지스터"를 살펴볼 수 있습니다.

답변3

이를 수행하는 몇 가지 코드는 다음과 같습니다. 코드가 작동하려면 "태피스트리" Lisp 라이브러리가 설치되어 있어야 합니다. VM 메일러를 사용하는 경우 라이브러리가 이미 설치되어 있습니다. 그렇지 않으면 할 수 있습니다여기에서 다운로드하세요.

.emacs 파일에 다음 코드를 넣으세요. 마지막 Emacs 세션에서 창과 프레임 설정을 복원하려면 를 입력하십시오 M-x load-my-tapestry RET.

(require 'tapestry)

(defvar my-tapestry-file "~/.tapestry")

(defun load-my-tapestry ()
  (interactive)
  (let ((b (find-file-noselect my-tapestry-file)))
    (sit-for 0)
    (set-tapestry (read b))
    (kill-buffer b)))

(defun save-my-tapestry ()
  (interactive)
  (let ((tap (tapestry)))
    (with-temp-buffer
      (let ((standard-output (current-buffer)))
        (setcar tap (make-list (length (car tap)) nil))
        (print tap)
        (write-region (point-min) (point-max) my-tapestry-file)))))

(add-hook 'kill-emacs-hook 'save-my-tapestry)

관련 정보