(require 'auto-save-buffers-enhanced) ;;; *scratch*を ~/.emacs.d/scratch に自動保存するだけ ;;; ファイルを自動保存したい人はregexpsの設定をしてください (setq auto-save-buffers-enhanced-include-regexps nil) (setq auto-save-buffers-enhanced-exclude-regexps nil) (setq auto-save-buffers-enhanced-save-scratch-buffer-to-file-p t) (setq auto-save-buffers-enhanced-file-related-with-scratch-buffer (locate-user-emacs-file "scratch")) (auto-save-buffers-enhanced t) ;;; C-x a sでauto-save-buffers-enhancedの有効・無効をトグル (global-set-key "\C-xas" 'auto-save-buffers-enhanced-toggle-activity) ;;; scratch-popの設定 (require 'scratch-pop) (global-set-key (kbd "C-c c") 'scratch-pop) ;;; ついでにscratchバッファを快適にする設定 ;; (makunbound 'scratch-ext-minor-mode-map) (define-minor-mode scratch-ext-minor-mode "*scratch*バッファ専用のマイナーモード" nil "" '(("\C-c\C-c" . scratch-pop-kill-ring-save-exit) ("\C-c\C-e" . erase-buffer))) (with-current-buffer (get-buffer-create "*scratch*") (erase-buffer) (ignore-errors (insert-file-contents auto-save-buffers-enhanced-file-related-with-scratch-buffer)) (org-mode) ;好みに応じて (setq header-line-format "scratch!!") (scratch-ext-minor-mode 1)) (defun scratch-pop-kill-ring-save-exit () "*scratch*バッファの内容をkill-ringに入れてから閉じる" (interactive) (kill-new (buffer-string)) (erase-buffer) (funcall (if (fboundp 'popwin:close-popup-window) 'popwin:close-popup-window 'quit-window)))