How do I close all but the current buffer in Emacs? Similar to "Close other tabs" feature in modern web browsers?
M-x kill-matching-buffers. Offer to kill all buffers matching a regular expression. C-x k ( kill-buffer ) kills one buffer, whose name you specify in the minibuffer. The default, used if you type just RET in the minibuffer, is to kill the current buffer.
Just put it to your . vim/plugin directory and then use :BufOnly command to close all buffers but the active one.
To close the current window, type C-x 0 (zero this time, not O). To close all windows except the current one, type C-x 1.
Buffers in Emacs editing are objects that have distinct names and hold text that can be edited. Buffers appear to Lisp programs as a special data type. You can think of the contents of a buffer as a string that you can extend; insertions and deletions may occur in any part of the buffer.
For a more manual approach, you can list all buffers with C-x C-b, mark buffers in the list for deletion with d, and then use x to remove them.
I also recommend replacing list-buffers with the more advanced ibuffer: (global-set-key (kbd "C-x C-b") 'ibuffer)
. The above will work with ibuffer, but you could also do this:
m (mark the buffer you want to keep)
t (toggle marks)
D (kill all marked buffers)
I also use this snippet from the Emacs Wiki, which would further streamline this manual approach:
;; Ensure ibuffer opens with point at the current buffer's entry. (defadvice ibuffer (around ibuffer-point-to-most-recent) () "Open ibuffer with cursor pointed to most recent buffer name." (let ((recent-buffer-name (buffer-name))) ad-do-it (ibuffer-jump-to-buffer recent-buffer-name))) (ad-activate 'ibuffer)
From EmacsWiki: Killing Buffers:
(defun kill-other-buffers () "Kill all other buffers." (interactive) (mapc 'kill-buffer (delq (current-buffer) (remove-if-not 'buffer-file-name (buffer-list)))))
Edit: updated with feedback from Gilles
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With