It’s amazing how many packages for our beloved editor exist out there. ELPA and MELPA keep growing and growing, and curiosity is always pushing me out to look for a new package to try.
Last year I wrote about Eyebrowse,1 a cool workspace manager that has proven to be a reliable friend until recently. Eyebrowse is a helpful extension, but as it turns out the built-in Ibuffer is enough to make sense of all of the buffers available. I open it with C-x C-b , which is one of the most used key bindings in my everyday Emacs interactions.
Ibuffer presents a customizable list of buffers on which, much like Dired, we can apply different kinds of operations: filter, sort, group, mark, delete, bury, visit. Just press h in Ibuffer to get an idea.
Since I mainly work on projects versioned on Git, ibuffer-vc helps with grouping the buffers in a project-based fashion and operate on them. For instance, to quickly close a project and its related buffers, mark the project header for deletion with d and then press x .
One thing I was missing in Ibuffer was an integration with Magit. I wanted to
magit-status in the project the current buffer (i.e., the buffer where
point is on) belongs to.
(defun mu-ibuffer-magit ()
"Open `magit-status' for the current buffer."
(let ((buf (ibuffer-current-buffer t)))
(magit-status (cdr (ibuffer-vc-root buf)))))
I’ve bound this function to v
ibuffer-mode-map. Note that
was previously calling
ibuffer-do-view, so you may want to pick
the key that suits you best.