Emacs Lock (
‘emacs-lock-mode’) is a minor mode for marking buffers as protected. Several levels of protection are provided:
The default locking behavior can be customized via
Emacs Lock is included in Emacs 24.
To protect important buffers from accidental killing, use the following forms in XEmacs:
(setq permanent-buffers-alist '(("*scratch*" (lisp-interaction-mode)))) (permanent-buffers-mode t)
(require 'protbuf) (protect-buffer-from-kill-mode nil (get-buffer "*scratch*"))
In case you need a function to kill a buffer protected by protbuf.el, here is one:
(defun kill-protected-buffer (&optional buffer-or-name) "Kill a buffer, overriding the protection granted by protbuf.el" (interactive (list (get-buffer (read-buffer "Kill buffer: " (current-buffer) 'existing)))) (message "Killing buffer %s, overriding protections." (buffer-name buffer-or-name)) (protect-buffer-from-kill-mode nil buffer-or-name) ;; Also disable by-name protection (let ((protect-buffer-names) (protect-buffer-matches) (protect-process-buffer-names) (protect-process-buffer-matches)) (kill-buffer buffer-or-name)))
This function also works with protbuf-by-name.el.
* Simpler and more robust than above. * Protect buffers by regexp. * Protected buffers can be buried when killed or have their contents erased prior to burial. Erasure can be undone.
It’s like 10 lines of real code.