scratch-log 20141114.2343(in MELPA)
Utility for *scratch* buffer.

概要

これは4年半前に作られたものですが、
久々に更新されたので紹介しておきます。

scratch-log.el は*scratch*バッファの
使い勝手を向上するものです。

  • *scratch*の内容のログを取る
  • 30秒ごとに自動でログを取る
  • *scratch*を削除できないようにする (オプション)
  • Emacs起動時に最後に終了した時点の*scratch*を復元(オプション)

*scratch*はEmacs起動時に作られるバッファで
一時的なメモやEmacs Lispの実験をするのに使われます。

しかし、なんらかの拍子で削除してしまうと、
ファイルに保存されていないために内容が失われてしまいます。

scratchのログは行頭に「*」がついているので、
org-modeにするとよいです。

作者のサイトで詳しく解説されています。
http://d.hatena.ne.jp/kitokitoki/20100612/p1

インストール

パッケージシステムを初めて使う人は
以下の設定を ~/.emacs.d/init.el の
先頭に加えてください。

(package-initialize)
(setq package-archives
      '(("gnu" . "http://elpa.gnu.org/packages/")
        ("melpa" . "http://melpa.org/packages/")
        ("org" . "http://orgmode.org/elpa/")))

初めてscratch-logを使う方は
以下のコマンドを実行します。

M-x package-install scratch-log

アップグレードする方は、
以下のコマンドでアップグレードしてください。
そのためにはpackage-utilsパッケージが必要です。

M-x package-install package-utils (初めてアップグレードする場合のみ)
M-x package-utils-upgrade-by-name scratch-log

ログの実例

.scratch-log

* 2015/01/05-06:01
aiau
* 2015/01/05-06:01
eieieeieiaiau
tesu
* 2015/01/05-06:01
eieieeieiaiau
tesu

.scratch-log-prev

eieieeieiaiau
tesu

その他の方法・応用

auto-save-buffers-enhanced.el(レビュー)
にも*scratch*を保存する機能があります。

scratch-pop.el(レビュー) を使えば、
簡単に*scratch*に切り替えられるので
併用するとよいでしょう。

メモやコードをすべて保存するならば拙作
open-junk-file.el を使う方法もあります。

メモを追記するならばorg-modeを使った
M-x org-capture もあります。

設定 150105055830.scratch-log.el(以下のコードと同一)

;;; scratchのログ、直前の内容
(setq sl-scratch-log-file "~/.emacs.d/.scratch-log")
(setq sl-prev-scratch-string-file "~/.emacs.d/.scratch-log-prev")
(setq sl-restore-scratch-p t)           ;復元
(setq sl-prohibit-kill-scratch-buffer-p t) ;削除不能
;;; *scratch*とscratch-logのメジャーモードをorg-modeにする
(setq initial-major-mode 'org-mode)
(add-to-list 'auto-mode-alist '("scratch-log" . org-mode))
;;; 30秒ごとに自動保存
(setq sl-use-timer t)
(setq sl-timer-interval 3)
;;; requireした時点で各種フック・タイマーが設定される
(require 'scratch-log)

本日もお読みいただき、ありがとうございました。参考になれば嬉しいです。