syscfg/emacs/module/module-scratch.el

40 lines
1.2 KiB
EmacsLisp

;;; module-scratch.el --- scratch buffer enhancements
;;;
;;; Commentary:
;;;
;;; Scratch buffer enhancements for Emacs.
;;;
;;; Code:
(require 'module-pkg)
(pkg/require 'scratch)
(pkg/require 'persistent-scratch)
(defvar persistent-scratch-directory "~/.local/state/emacs/"
"The place to save persistent scratch buffers.")
(defun my-set-scratch-mode ()
"Set default scratch mode."
(funcall 'text-mode))
(persistent-scratch-setup-default)
(setq persistent-scratch-directory "~/.local/state/emacs/"
persistent-scratch-autosave-interval 30
persistent-scratch-what-to-save '(((:current . "*scratch*") .
(major-mode point narrowing)))
persistent-scratch-save-file (expand-file-name
"scratch" persistent-scratch-directory))
(unless (file-exists-p persistent-scratch-directory)
(make-directory persistent-scratch-directory t))
(add-hook 'scratch-create-buffer-hook 'my-set-scratch-mode)
(add-hook 'after-init-hook #'persistent-scratch-autosave-mode)
(global-set-key (kbd "C-c s") #'persistent-scratch-save)
(global-set-key (kbd "C-c r") #'persistent-scratch-restore)
(provide 'module-scratch)
;;; module-scratch.el ends here.