Function: electric-buffer-list

electric-buffer-list is an autoloaded, interactive and byte-compiled function defined in ebuff-menu.el.gz.

Signature

(electric-buffer-list ARG)

Documentation

Pop up the Buffer Menu in an "electric" window.

If you type SPC or RET (Electric-buffer-menu-select), that selects the buffer at point and quits the "electric" window. Otherwise, you can move around in the Buffer Menu, marking buffers to be selected, saved or deleted; these other commands are much like those of Buffer-menu-mode.

Run hooks in electric-buffer-menu-mode-hook on entry.

M-x keyboard-quit (keyboard-quit) or C-] (Electric-buffer-menu-quit) -- exit buffer menu, returning to previous window and buffer
  configuration. If the very first character typed is a space, it
  also has this effect.
SPC (Electric-buffer-menu-select) -- select buffer of line point is on.
  Also show buffers marked with m in other windows,
  deletes buffers marked with "D", and saves those marked with "S".
m (Buffer-menu-mark) -- mark buffer to be displayed.
~ (Buffer-menu-not-modified) -- clear modified-flag on that buffer.
s (Buffer-menu-save) -- mark that buffer to be saved. d (Buffer-menu-delete) or M-x Buffer-menu-delete-backwards (Buffer-menu-delete-backwards) -- mark that buffer to be deleted. u (Buffer-menu-unmark) -- remove all kinds of marks from current line. U (Buffer-menu-unmark-all) -- remove all kinds of marks from all lines. v (Electric-buffer-menu-mode-view-buffer) -- view buffer, returning when done. DEL (Buffer-menu-backup-unmark) -- back up a line and remove marks.

Probably introduced at or before Emacs version 16.

Key Bindings

Source Code

;; Defined in /usr/src/emacs/lisp/ebuff-menu.el.gz
;;;###autoload
(defun electric-buffer-list (arg)
  "Pop up the Buffer Menu in an \"electric\" window.
If you type SPC or RET (`Electric-buffer-menu-select'), that
selects the buffer at point and quits the \"electric\" window.
Otherwise, you can move around in the Buffer Menu, marking
buffers to be selected, saved or deleted; these other commands
are much like those of `Buffer-menu-mode'.

Run hooks in `electric-buffer-menu-mode-hook' on entry.

\\<electric-buffer-menu-mode-map>
\\[keyboard-quit] or \\[Electric-buffer-menu-quit] -- exit buffer menu, returning to previous window and buffer
  configuration.  If the very first character typed is a space, it
  also has this effect.
\\[Electric-buffer-menu-select] -- select buffer of line point is on.
  Also show buffers marked with m in other windows,
  deletes buffers marked with \"D\", and saves those marked with \"S\".
\\[Buffer-menu-mark] -- mark buffer to be displayed.
\\[Buffer-menu-not-modified] -- clear modified-flag on that buffer.
\\[Buffer-menu-save] -- mark that buffer to be saved.
\\[Buffer-menu-delete] or \\[Buffer-menu-delete-backwards] -- mark that buffer to be deleted.
\\[Buffer-menu-unmark] -- remove all kinds of marks from current line.
\\[Buffer-menu-unmark-all] -- remove all kinds of marks from all lines.
\\[Electric-buffer-menu-mode-view-buffer] -- view buffer, returning when done.
\\[Buffer-menu-backup-unmark] -- back up a line and remove marks."
  (interactive "P")
  (let (select buffer)
    (save-window-excursion
      (setq buffer (list-buffers-noselect arg))
      (Electric-pop-up-window buffer)
      (unwind-protect
	  (let ((header header-line-format))
	    (set-buffer buffer)
	    (electric-buffer-menu-mode)
	    (setq header-line-format header)
	    (goto-char (point-min))
	    (if (search-forward "\n." nil t)
		(forward-char -1))
	    (electric-buffer-update-highlight)
	    (setq select
		  (catch 'electric-buffer-menu-select
		    (message "<<< Type SPC or RET to bury the buffer list >>>")
		    (push (read-event) unread-command-events)
		    (let ((start-point (point))
			  (first (progn (goto-char (point-min))
					(unless Buffer-menu-use-header-line
					  (forward-line 2))
					(point)))
			  (last (progn (goto-char (point-max))
				       (forward-line -1)
				       (point)))
			  (goal-column 0))
		      ;; Use start-point if it is meaningful.
		      (goto-char (if (or (< start-point first)
					 (> start-point last))
				     first
				   start-point))
		      (Electric-command-loop 'electric-buffer-menu-select
					     nil
					     t
					     'electric-buffer-menu-looper
					     (cons first last))))))
	(set-buffer buffer)
	(Buffer-menu-mode)
	(bury-buffer)                ;Get rid of window, if dedicated.
	(message "")))
    (when select
      (set-buffer buffer)
      (goto-char select)
      (let ((opoint (point-marker)))
	(Buffer-menu-execute)
	(goto-char (point-min))
	(if (prog1 (search-forward "\n>" nil t)
	      (goto-char opoint)
	      (set-marker opoint nil))
	    (Buffer-menu-select)
	  (switch-to-buffer (Buffer-menu-buffer t)))))))