2010年2月9日火曜日

Emacs Scratchバッファの自動保存とリストア

1年ほど前にどこかのサイトで発見して、ありがたく使わせていただいているのが「Scratchバッファの自動保存とリストア」をするためElisp。Emacs終了時に自動的にScratchバッファの内容を保存して、次回起動時に復元してくれる。
;;; auto save and restore scratch buffer
(defun save-scratch-data ()
  (let ((str (progn
               (set-buffer (get-buffer "*scratch*"))
               (buffer-substring-no-properties
                (point-min) (point-max))))
        (file "~/.scratch"))
    (if (get-file-buffer (expand-file-name file))
        (setq buf (get-file-buffer (expand-file-name file)))
      (setq buf (find-file-noselect file)))
    (set-buffer buf)
    (erase-buffer)
    (insert str)
    (save-buffer)
    (kill-buffer buf)))

(defadvice save-buffers-kill-emacs
  (before save-scratch-buffer activate)
  (save-scratch-data))

(defun read-scratch-data ()
  (let ((file "~/.scratch"))
    (when (file-exists-p file)
      (set-buffer (get-buffer "*scratch*"))
      (erase-buffer)
      (insert-file-contents file))
    ))

(read-scratch-data)
これを .emacs に記述して長い間使ってる。かなり便利で、即席のメモ帳として使える。どこのサイトでオリジナルを見つけたのか今となってはわからないのだが、、、ありがとうございます>作者の方。

#僕はEmacs Lisp初心者で勉強中。

0 件のコメント:

コメントを投稿