Emacsのscratchバッファーを簡易メモとして使うという目的で作られたパッケージはいくつかありますが、設定だけで実現できる簡単なものを紹介します。設定に必要な手順は以下の通りです。
- Scratch buffer を kill させない。
- Scratch buffer の内容を記憶させる。
- Scratch buffer をPopupさせる。
Scratch buffer を kill させない
特にpackageを導入せずともemacsの標準機能で実現できます。
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Set buffer that can not be killed.
(with-current-buffer "*scratch*"
(emacs-lock-mode 'kill))
設定反映後、scratch bufferを kill-buffer
すると
Buffer "*scratch*" is locked and cannot be killed
とmessageがでます。
Scratch buffer の内容を記憶させる
大方のemacserは auto-save-buffers-enhanced
を導入していると思います。
以下の設定をすることで scratch buffer の内容を記憶させることが可能です。
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; auto-save-buffers-enhanced
(setq auto-save-buffers-enhanced-quiet-save-p t)
;; scratch bufferの内容を `~/.emacs.d/scratch` に保存
(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)
Scratch bufferをPopupさせる
popwinの機能を使います。
my:pop-scratch
を起動するとscratch bufferがpopupします。メモしたあと C-g
で隠せるので便利です。
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Popup the scratch buffer
(bind-key
"s-x"
(defun my:pop-scratch ()
"Popup the scratch buffer."
(interactive)
(setq popwin:special-display-config '("*scratch*"))
(display-buffer "*scratch*")))