Function: ibuffer
ibuffer is an autoloaded, interactive and byte-compiled function
defined in ibuffer.el.gz.
Signature
(ibuffer &optional OTHER-WINDOW-P NAME QUALIFIERS NOSELECT SHRINK FILTER-GROUPS FORMATS)
Documentation
Begin using Ibuffer to edit a list of buffers.
Type C-h m (describe-mode) after entering ibuffer for more information.
All arguments are optional.
OTHER-WINDOW-P says to use another window.
NAME specifies the name of the buffer (defaults to "*Ibuffer*").
QUALIFIERS is an initial set of filtering qualifiers to use;
see ibuffer-filtering-qualifiers.
NOSELECT means don't select the Ibuffer buffer.
SHRINK means shrink the buffer to minimal size. The special
value onewindow means always use another window.
FILTER-GROUPS is an initial set of filtering groups to use;
see ibuffer-filter-groups.
FORMATS is the value to use for ibuffer-formats.
If specified, then the variable ibuffer-formats will have
that value locally in this buffer.
Probably introduced at or before Emacs version 22.1.
Key Bindings
Source Code
;; Defined in /usr/src/emacs/lisp/ibuffer.el.gz
;;;###autoload
(defun ibuffer (&optional other-window-p name qualifiers noselect
shrink filter-groups formats)
"Begin using Ibuffer to edit a list of buffers.
Type \\<ibuffer-mode-map>\\[describe-mode] after entering ibuffer for more information.
All arguments are optional.
OTHER-WINDOW-P says to use another window.
NAME specifies the name of the buffer (defaults to \"*Ibuffer*\").
QUALIFIERS is an initial set of filtering qualifiers to use;
see `ibuffer-filtering-qualifiers'.
NOSELECT means don't select the Ibuffer buffer.
SHRINK means shrink the buffer to minimal size. The special
value `onewindow' means always use another window.
FILTER-GROUPS is an initial set of filtering groups to use;
see `ibuffer-filter-groups'.
FORMATS is the value to use for `ibuffer-formats'.
If specified, then the variable `ibuffer-formats' will have
that value locally in this buffer."
(interactive "P")
(when ibuffer-use-other-window
(setq other-window-p t))
(let ((buf (get-buffer-create (or name "*Ibuffer*"))))
(if other-window-p
(or (and noselect (display-buffer buf t))
(pop-to-buffer buf t))
(funcall (if noselect #'display-buffer #'switch-to-buffer) buf))
(with-current-buffer buf
(save-selected-window
;; We switch to the buffer's window in order to be able
;; to modify the value of point
(select-window (get-buffer-window buf 0))
(or (derived-mode-p 'ibuffer-mode)
(ibuffer-mode))
(when shrink
(setq ibuffer-shrink-to-minimum-size shrink))
(when qualifiers
(require 'ibuf-ext)
(setq ibuffer-filtering-qualifiers qualifiers))
(when filter-groups
(require 'ibuf-ext)
(setq ibuffer-filter-groups filter-groups))
(when formats
(setq-local ibuffer-formats formats))
(ibuffer-update nil)
;; Skip the group name by default.
(ibuffer-forward-line 0 t)
(unwind-protect
(progn
(setq buffer-read-only nil)
(run-hooks 'ibuffer-hook))
(setq buffer-read-only t))
(unless ibuffer-expert
(message "Commands: m, u, t, RET, g, k, S, D, Q; q to quit; h for help"))))))