Phase out doom-kill-buffer
This commit is contained in:
parent
ecc8051378
commit
8e875bfa0e
6 changed files with 8 additions and 52 deletions
|
@ -158,41 +158,6 @@ buffers. If there's nothing left, switch to `doom-fallback-buffer'. See
|
||||||
(with-current-buffer buffer
|
(with-current-buffer buffer
|
||||||
(setq doom-real-buffer-p flag)))
|
(setq doom-real-buffer-p flag)))
|
||||||
|
|
||||||
;;;###autoload
|
|
||||||
(defun doom-kill-buffer (&optional buffer dont-save)
|
|
||||||
"Kill BUFFER (defaults to current buffer), but make sure we land on a real
|
|
||||||
buffer. Bury the buffer if the buffer is present in another window.
|
|
||||||
|
|
||||||
Will prompt to save unsaved buffers when attempting to kill them, unless
|
|
||||||
DONT-SAVE is non-nil.
|
|
||||||
|
|
||||||
See `doom-real-buffer-p' for what 'real' means."
|
|
||||||
(unless buffer
|
|
||||||
(setq buffer (current-buffer)))
|
|
||||||
(when (and (bufferp buffer)
|
|
||||||
(buffer-live-p buffer))
|
|
||||||
(let ((buffer-win (get-buffer-window buffer)))
|
|
||||||
;; deal with modified buffers
|
|
||||||
(when (and (buffer-file-name buffer)
|
|
||||||
(buffer-modified-p buffer))
|
|
||||||
(with-current-buffer buffer
|
|
||||||
(if (and (not dont-save)
|
|
||||||
(yes-or-no-p "Buffer is unsaved, save it?"))
|
|
||||||
(save-buffer)
|
|
||||||
(set-buffer-modified-p nil))))
|
|
||||||
;; kill the buffer (or close dedicated window)
|
|
||||||
(cond ((not buffer-win)
|
|
||||||
(kill-buffer buffer))
|
|
||||||
((window-dedicated-p buffer-win)
|
|
||||||
(unless (window--delete buffer-win t t)
|
|
||||||
(split-window buffer-win)
|
|
||||||
(window--delete buffer-win t t)))
|
|
||||||
(t ; cycle to a real buffer
|
|
||||||
(with-selected-window buffer-win
|
|
||||||
(doom--cycle-real-buffers -1)
|
|
||||||
(kill-buffer buffer)))))
|
|
||||||
(not (eq (current-buffer) buffer))))
|
|
||||||
|
|
||||||
;;;###autoload
|
;;;###autoload
|
||||||
(defun doom-kill-buffer-and-windows (buffer)
|
(defun doom-kill-buffer-and-windows (buffer)
|
||||||
"Kill the buffer and delete all the windows it's displayed in."
|
"Kill the buffer and delete all the windows it's displayed in."
|
||||||
|
@ -207,20 +172,13 @@ See `doom-real-buffer-p' for what 'real' means."
|
||||||
regex PATTERN. Returns the number of killed buffers."
|
regex PATTERN. Returns the number of killed buffers."
|
||||||
(let ((buffers (doom-matching-buffers pattern buffer-list)))
|
(let ((buffers (doom-matching-buffers pattern buffer-list)))
|
||||||
(dolist (buf buffers (length buffers))
|
(dolist (buf buffers (length buffers))
|
||||||
(doom-kill-buffer buf t))))
|
(kill-buffer buf t))))
|
||||||
|
|
||||||
|
|
||||||
;;
|
;;
|
||||||
;; Interactive commands
|
;; Interactive commands
|
||||||
;;
|
;;
|
||||||
|
|
||||||
;;;###autoload
|
|
||||||
(defun doom/kill-this-buffer (&optional interactive-p)
|
|
||||||
"Use `doom-kill-buffer' on the current buffer."
|
|
||||||
(interactive (list 'interactive))
|
|
||||||
(when (and (not (doom-kill-buffer)) interactive-p)
|
|
||||||
(message "Nowhere left to go!")))
|
|
||||||
|
|
||||||
;;;###autoload
|
;;;###autoload
|
||||||
(defun doom/kill-this-buffer-in-all-windows (buffer &optional dont-save)
|
(defun doom/kill-this-buffer-in-all-windows (buffer &optional dont-save)
|
||||||
"Kill BUFFER globally and ensure all windows previously showing this buffer
|
"Kill BUFFER globally and ensure all windows previously showing this buffer
|
||||||
|
@ -231,7 +189,10 @@ If DONT-SAVE, don't prompt to save modified buffers (discarding their changes)."
|
||||||
(list (current-buffer) current-prefix-arg))
|
(list (current-buffer) current-prefix-arg))
|
||||||
(cl-assert (bufferp buffer) t)
|
(cl-assert (bufferp buffer) t)
|
||||||
(let ((windows (get-buffer-window-list buffer nil t)))
|
(let ((windows (get-buffer-window-list buffer nil t)))
|
||||||
(doom-kill-buffer buffer dont-save)
|
(when (and (buffer-modified-p buffer) dont-save)
|
||||||
|
(with-current-buffer buffer
|
||||||
|
(set-buffer-modified-p nil)))
|
||||||
|
(kill-buffer buffer)
|
||||||
(cl-loop for win in windows
|
(cl-loop for win in windows
|
||||||
if (doom-real-buffer-p (window-buffer win))
|
if (doom-real-buffer-p (window-buffer win))
|
||||||
do (with-selected-window win (doom/previous-buffer)))))
|
do (with-selected-window win (doom/previous-buffer)))))
|
||||||
|
|
|
@ -84,7 +84,7 @@ playback.")
|
||||||
(add-hook 'circe-channel-mode-hook #'turn-on-visual-line-mode)
|
(add-hook 'circe-channel-mode-hook #'turn-on-visual-line-mode)
|
||||||
|
|
||||||
;; Let `+irc/quit' and `circe' handle buffer cleanup
|
;; Let `+irc/quit' and `circe' handle buffer cleanup
|
||||||
(map! :map circe-mode-map [remap doom/kill-this-buffer] #'bury-buffer)
|
(map! :map circe-mode-map [remap kill-buffer] #'bury-buffer)
|
||||||
|
|
||||||
(defun +irc*circe-truncate-nicks ()
|
(defun +irc*circe-truncate-nicks ()
|
||||||
"Truncate long nicknames in chat output non-destructively."
|
"Truncate long nicknames in chat output non-destructively."
|
||||||
|
|
|
@ -33,8 +33,6 @@
|
||||||
(define-key map "\C-c\C-c" #'+regex-update-buffers)
|
(define-key map "\C-c\C-c" #'+regex-update-buffers)
|
||||||
(define-key map "\C-c\C-r" #'=regex/replace)
|
(define-key map "\C-c\C-r" #'=regex/replace)
|
||||||
(define-key map "\C-c\C-k" #'+regex/quit)
|
(define-key map "\C-c\C-k" #'+regex/quit)
|
||||||
(define-key map [remap doom-kill-buffer] #'+regex/quit)
|
|
||||||
(define-key map [remap doom/kill-this-buffer] #'+regex/quit)
|
|
||||||
(define-key map [remap kill-this-buffer] #'+regex/quit)
|
(define-key map [remap kill-this-buffer] #'+regex/quit)
|
||||||
(define-key map [remap kill-buffer] #'+regex/quit)
|
(define-key map [remap kill-buffer] #'+regex/quit)
|
||||||
map)
|
map)
|
||||||
|
|
|
@ -35,7 +35,6 @@
|
||||||
(add-hook 'elfeed-show-mode-hook #'+rss|elfeed-wrap)
|
(add-hook 'elfeed-show-mode-hook #'+rss|elfeed-wrap)
|
||||||
|
|
||||||
(map! (:map (elfeed-search-mode-map elfeed-show-mode-map)
|
(map! (:map (elfeed-search-mode-map elfeed-show-mode-map)
|
||||||
[remap doom/kill-this-buffer] "q"
|
|
||||||
[remap kill-this-buffer] "q"
|
[remap kill-this-buffer] "q"
|
||||||
[remap kill-buffer] "q")
|
[remap kill-buffer] "q")
|
||||||
|
|
||||||
|
|
|
@ -97,9 +97,7 @@
|
||||||
(def-package! helm-ag
|
(def-package! helm-ag
|
||||||
:defer t
|
:defer t
|
||||||
:config
|
:config
|
||||||
(map! :map helm-ag-edit-map
|
(map! :map helm-ag-edit-map [remap quit-window] #'helm-ag--edit-abort))
|
||||||
[remap doom/kill-this-buffer] #'helm-ag--edit-abort
|
|
||||||
[remap quit-window] #'helm-ag--edit-abort))
|
|
||||||
|
|
||||||
|
|
||||||
(def-package! helm-css-scss ; https://github.com/ShingoFukuyama/helm-css-scss
|
(def-package! helm-css-scss ; https://github.com/ShingoFukuyama/helm-css-scss
|
||||||
|
|
|
@ -289,7 +289,7 @@
|
||||||
|
|
||||||
|
|
||||||
;; --- Personal vim-esque bindings ------------------
|
;; --- Personal vim-esque bindings ------------------
|
||||||
:n "zx" #'doom/kill-this-buffer
|
:n "zx" #'kill-this-buffer
|
||||||
:n "ZX" #'bury-buffer
|
:n "ZX" #'bury-buffer
|
||||||
:n "]b" #'doom/next-buffer
|
:n "]b" #'doom/next-buffer
|
||||||
:n "[b" #'doom/previous-buffer
|
:n "[b" #'doom/previous-buffer
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue