有个专门干这事的包:
我没用过上面提到的包,考虑到很容易实现,比如我自己用的:
(defun chunyang-scratch-save ()
(ignore-errors
(with-current-buffer "*scratch*"
(write-region nil nil "~/.emacs.d/var/scratch"))))
(defun chunyang-scratch-restore ()
(let ((f "~/.emacs.d/var/scratch"))
(when (file-exists-p f)
(with-current-buffer "*scratch*"
(erase-buffer)
(insert-file-contents f)))))
(add-hook 'kill-emacs-hook #'chunyang-scratch-save)
(add-hook 'after-init-hook #'chunyang-scratch-restore)
我没用过 Spacemacs,或许它有特别的方法。