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)))))))