From dc977468031d12e074eb48e41470c972d4541998 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Sun, 7 Dec 2014 15:07:21 -0500 Subject: [PATCH] Smarter buffer navigation/disposal --- init/core.el | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/init/core.el b/init/core.el index 8d50f4bb0..bc8930c95 100644 --- a/init/core.el +++ b/init/core.el @@ -166,11 +166,22 @@ ;;;; Behavior adjustments ;;;;;;;;;;;;;;;; - ;; Skip special buffers on next/previous-buffer + ;; Skip special buffers on next/previous-buffer or kill-this-buffer (defadvice next-buffer (after void-messages-buffer-in-next-buffer activate) - (when (string-match "\\`\\*.+\\*\\'" (buffer-name)) (next-buffer))) + (let ((buffer-name (buffer-name))) + (when (and (string-match-p "\\`\\(\\*.+\\*\\|TAGS\\)$" buffer-name) + (not (string-match-p "\\`\\*scratch*" buffer-name))) + (next-buffer)))) (defadvice previous-buffer (after avoid-messages-buffer-in-previous-buffer activate) - (when (string-match "\\`\\*.+\\*\\'" (buffer-name)) (previous-buffer))) + (let ((buffer-name (buffer-name))) + (when (and (string-match-p "\\`\\(\\*.+\\*\\|TAGS\\)$" buffer-name) + (not (string-match-p "\\`\\*scratch*" buffer-name))) + (previous-buffer)))) + (defadvice kill-this-buffer (after kill-this-buffer-no-switch-to-special-buffers activate) + (let ((buffer-name (buffer-name))) + (if (and (string-match-p "^\\*.+\\*" buffer-name) + (not (string-match-p "^\\*scratch\\*" buffer-name))) + (previous-buffer)))) ;; Don't kill the scratch buffer, just empty and bury it (defadvice kill-this-buffer (around kill-this-buffer-or-empty-scratch activate) (if (string-match-p "^\\*scratch\\*" (buffer-name))