- unkillable-scratch 20160504.1903(in MELPA)
- Disallow buffers from being killed by regexp -- default is *scratch* buffer
概要
バッファを誤って削除してしまうことってありますよね?
特に特定のバッファを誤削除から守るマイナーモードが
M-x unkillable-scratch です。
名前からして*scratch*バッファ限定と思われがちですが、
保護対象のバッファ名の正規表現リスト unkillable-buffers
を指定すれば任意のバッファに適用できます。
開くのに時間がかかる巨大なファイルに対して使うのもいいです。
*scratch*については特別扱いされていて、
*scratch*を削除しようとしたら、
現在の*scratch*の内容がクリアされます。
unkillable-buffers に指定されたバッファを削除しようとしたとき、
デフォルトでは何もしませんが、 unkillable-scratch-behavior を
buryに指定すれば bury-buffer が実行されます。
そのとき、見かけ上はそのバッファが削除されたようですが、
実は buffer-list の最後尾に回されるだけで選択しづらくなるだけです。
マイナーモードとして実装されていますが、
単に kill-buffer-query-functions を設定しているだけです。
*scratch*バッファを削除不能にするelispは他にも
scratch-log.el(レビュー) があり、それはさらに
*scratch*の内容を記録し、再起動時に復元までします。
*scratch*バッファを選択しやすくする scratch-pop.el(レビュー)
も便利でしょう。
インストール
パッケージシステムを初めて使う人は
以下の設定を ~/.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/")))
初めてunkillable-scratchを使う方は
以下のコマンドを実行します。
M-x package-install unkillable-scratch
アップグレードする方は、
以下のコマンドでアップグレードしてください。
そのためにはpackage-utilsパッケージが必要です。
M-x package-install package-utils (初めてアップグレードする場合のみ) M-x package-utils-upgrade-by-name unkillable-scratch
設定 150322075829.unkillable-scratch.el(以下のコードと同一)
;;; デフォルトでは何もしない
;;; buryを指定すればバッファリストの最後尾に回される
(setq unkillable-scratch-behavior 'do-nothing)
;;; 保護対象のバッファの正規表現リスト
(setq unkillable-buffers
'("^\\*scratch\\*$"))
(unkillable-scratch 1)
実行方法
$ wget http://rubikitch.com/f/150322075829.unkillable-scratch.el $ emacs -Q -f package-initialize -l 150322075829.unkillable-scratch.el
本サイト内の関連パッケージ
- scratch-pop - Generate, popup (& optionally backup) scratch buffer(s).
- scratch-log - Utility for *scratch* buffer.
- persistent-scratch - Preserve the scratch buffer across Emacs sessions
本日もお読みいただき、ありがとうございました。参考になれば嬉しいです。