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.

View in manual

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 (substitute-command-keys
                    (concat "Commands: \\[ibuffer-mark-forward], "
                            "\\[ibuffer-unmark-forward], "
                            "\\[ibuffer-toggle-marks], "
                            "\\[ibuffer-visit-buffer], "
                            "\\[ibuffer-update], "
                            "\\[ibuffer-do-kill-lines], "
                            "\\[ibuffer-do-save], "
                            "\\[ibuffer-do-delete], "
                            "\\[ibuffer-do-query-replace]; "
                            "\\[quit-window] to quit; "
                            "\\[describe-mode] for help"))))))))