朝寝して宵寝するまで昼寝して時々起きて居眠りをする
xyzzyをはじめて起動する人は、最初から謎のバッファ(≒空のファイルのようなもの)が開かれているので、「なんだこれ?」と思ったりすると思うのですが、このバッファ(*scratch* バッファ)をメモ代わりにして、xyzzy の終了時に保存し、起動時に前回の終了時の状態を表示するようにすると意外と便利です。
以下はあちこちからもらってきたものの寄せ集めです。
これを.xyzzy などに書いてからxyzzyを再起動し、そのあと *scratch* に適当な文書を書き、xyzzy を終了 → 起動 してみてください。
;;;;;;;;;;;;;;;;;
;; ■ *scratch* をメモ代わりに使う。
;; *scratch* を終了時に保存
(add-hook '*kill-xyzzy-hook*
#'(lambda ()
(save-excursion
(set-buffer (find-buffer "*scratch*"))
(write-file "~/scratch")
; ~/memorandom フォルダに毎回日付と時刻が含まれるファイル名で
; 保存する場合はフォルダを作ってこの下2行をコメントアウト。(履歴もどき)
; (unless (equal (point-min) (point-max))
; (write-file (format-date-string "~/memorandom/%Y_%m_%d_%H%M_scratch.txt")))
)))
;; *scratch* を起動時にロード
(add-hook '*post-startup-hook*
#'(lambda ()
(save-excursion
(set-buffer (find-buffer "*scratch*"))
(insert-file-contents "~/scratch" t))))
;; *scratch* な場合は nil を返してkillさせない
(add-hook '*query-kill-buffer-hook*
#'(lambda ()
(if (and (not *kill-buffer-kills-scratch*)
(equal (buffer-name (selected-buffer))
"*scratch*"))
nil
t)))
私は2つのxyzzyを開いていたときなどうっかり~/scratchファイルの上書きをしてしまうことがあるので、xyzzy を閉じるときの状態も別に記録しています。(↑でコメントアウトしてある部分)