(require (quote electric)) (defvar Electric-buffer-menu-mode-map nil) (defun electric-buffer-list (arg) "\ Vaguely like ITS lunar select buffer; combining typeoutoid buffer listing with menuoid buffer selection. This pops up a buffer describing the set of emacs buffers. If the very next character typed is a space then the buffer list is killed. Otherwise, one may use \\[next-line] and \\[previous-line] to move around in the buffer list window and select a buffer by typing Space when the cursor is on the appropriate line of the buffer-list window. Other commands are much like those of buffer-menu-mode. Calls value of electric-buffer-menu-mode-hook on entry if non-nil. Calls value of after-electric-buffer-menu on exit (select) if non-nil. \\{Electric-buffer-menu-mode-map}" (interactive "P") (byte-code "Ĉϋ 8 q s ab !5 5 !9 ." [Helper-return-blurb Helper-major-mode Helper-mode-name goal-column nil select buffer arg first last t after-electric-buffer-menu "return to buffer editing" electric-buffer-menu-mode "Electric Buffer Menu" ((byte-code "Nj!!ˎ q )" [arg buffer select first last nil t ((byte-code "!" [arg list-buffers] 2)) window-buffer Electric-pop-up-window "*Buffer List*" ((byte-code "q !!" [buffer select Buffer-menu-mode bury-buffer message ""] 4)) electric-buffer-menu-mode electric-buffer-menu-select (byte-code "eb!`db!`b B%*" [first last nil t forward-line 2 -1 Electric-command-loop electric-buffer-menu-select Electric-buffer-menu-looper] 9)] 5)) Buffer-menu-execute Buffer-menu-select boundp funcall] 6)) (defun Electric-buffer-menu-looper (state conditions) (byte-code " @>? @A\"* ` @W! * ` AV* " [conditions state (buffer-read-only end-of-buffer beginning-of-buffer) signal Electric-buffer-menu-beginning Electric-buffer-menu-end] 4)) (defun electric-buffer-menu-mode nil "\ Major mode for editing a list of buffers. Each line describes one of the buffers in Emacs. Letters do not insert themselves; instead, they are commands. C-g or C-c C-c -- exit buffer menu, returning to previous window and buffer configuration. If the very first character typed is a space, it also has this effect. Space -- select buffer of line point is on. Also show buffers marked with m in other windows, kills buffers marked with k, and saves those marked with s. m -- mark buffer to be displayed. ~ -- clear modified-flag on that buffer. s -- mark that buffer to be saved. d or k or C-d or C-k -- mark that buffer to be killed. u -- remove all kinds of marks from current line. v -- view buffer, returning when done. Delete -- back up a line and remove marks. \\{Electric-buffer-menu-mode-map} Entry to this mode via command \\[electric-buffer-list] calls the value of electric-buffer-menu-mode-hook if it is non-nil. The value of after-electric-buffer-menu is called on exit (when a selection is made) if it is non-nil." (byte-code " !ɉʉˉ!" [Electric-buffer-menu-mode-map mode-line-format truncate-lines t buffer-read-only major-mode mode-name kill-all-local-variables use-local-map "-- Electric Buffer List %M %[%]----%3p-%-" electric-buffer-menu-mode "Electric Buffer Menu" run-hooks electric-buffer-menu-mode-hook] 4)) (put (quote Electric-buffer-menu-undefined) (quote suppress-keymap) t) (if Electric-buffer-menu-mode-map nil (let ((map (make-keymap))) (fillarray map (quote Electric-buffer-menu-undefined)) (define-key map "" (make-keymap)) (fillarray (lookup-key map "") (quote Electric-buffer-menu-undefined)) (define-key map "" (quote suspend-emacs)) (define-key map "v" (quote Electric-buffer-menu-mode-view-buffer)) (define-key map "" (quote Helper-help)) (define-key map "?" (quote Helper-describe-bindings)) (define-key map "" nil) (define-key map "" (quote Electric-buffer-menu-quit)) (define-key map "" (quote Electric-buffer-menu-quit)) (define-key map "q" (quote Electric-buffer-menu-quit)) (define-key map " " (quote Electric-buffer-menu-select)) (define-key map "" (quote recenter)) (define-key map "s" (quote Buffer-menu-save)) (define-key map "d" (quote Buffer-menu-kill)) (define-key map "k" (quote Buffer-menu-kill)) (define-key map "" (quote Buffer-menu-kill)) (define-key map "" (quote Buffer-menu-kill)) (define-key map "" (quote Buffer-menu-backup-unmark)) (define-key map "~" (quote Buffer-menu-not-modified)) (define-key map "u" (quote Buffer-menu-unmark)) (let ((i 48)) (while (<= i 57) (define-key map (char-to-string i) (quote digit-argument)) (define-key map (concat "" (char-to-string i)) (quote digit-argument)) (setq i (1+ i)))) (define-key map "-" (quote negative-argument)) (define-key map "-" (quote negative-argument)) (define-key map "m" (quote Buffer-menu-mark)) (define-key map "" (quote universal-argument)) (define-key map "" (quote previous-line)) (define-key map "" (quote next-line)) (define-key map "" (quote scroll-up)) (define-key map "v" (quote scroll-down)) (define-key map "" (quote scroll-other-window)) (define-key map ">" (quote Electric-buffer-menu-end)) (define-key map "<" (quote Electric-buffer-menu-beginning)) (setq Electric-buffer-menu-mode-map map))) (defun Electric-buffer-menu-exit nil (interactive) (byte-code " ď" [unread-command-char last-input-char nil (byte-code "\"" [nil throw electric-buffer-menu-select] 3) ((error (byte-code " " [Buffer-menu-mode other-buffer] 3)))] 3)) (defun Electric-buffer-menu-select nil "\ Leave Electric Buffer Menu, selecting buffers and executing changes. Saves buffers marked `S'. Kills buffers marked `K'. Selects buffer at point and displays buffers marked `>' in other windows." (interactive) (byte-code "`\"" [nil throw electric-buffer-menu-select] 3)) (defun Electric-buffer-menu-quit nil "\ Leave Electric Buffer Menu, restoring previous window configuration. Does not execute select, save, or kill commands." (interactive) (byte-code "\"" [nil throw electric-buffer-menu-select] 3)) (defun Electric-buffer-menu-undefined nil (interactive) (byte-code " !=# !=# !=# !=* ̂- !!!" [nil ding message key-binding "" Electric-buffer-menu-quit " " Electric-buffer-menu-select "" Helper-help "?" Helper-describe-bindings "Type C-c C-c to exit, Space to select, C-h for help, ? for commands" substitute-command-keys "Type \\[Electric-buffer-menu-quit] to exit, \\[Electric-buffer-menu-select] to select, \\[Helper-help] for help, \\[Helper-describe-bindings] for commands." sit-for 4] 9)) (defun Electric-buffer-menu-beginning nil "\ Move to the first buffer description in Electric Buffer Menu." (interactive) (byte-code "eb!" [nil forward-line 2] 2)) (defun Electric-buffer-menu-end nil "\ Move to the last buffer description in Electric Buffer Menu." (interactive) (byte-code "db!d!? !\"S! " [nil forward-line -1 pos-visible-in-window-p recenter / window-height selected-window 2] 8)) (defun Electric-buffer-menu-mode-view-buffer nil "\ View buffer on current line in Electric Buffer Menu. Returns to Electric Buffer Menu when done." (interactive) (byte-code " ! ! \"!)" [bufnam nil Buffer-menu-buffer view-buffer ding message "Buffer %s does not exist!" sit-for 4] 6))