Function: comint-dynamic-list-input-ring
comint-dynamic-list-input-ring is an interactive and byte-compiled
function defined in comint.el.gz.
Signature
(comint-dynamic-list-input-ring)
Documentation
Display a list of recent inputs entered into the current buffer.
Key Bindings
Source Code
;; Defined in /usr/src/emacs/lisp/comint.el.gz
(defun comint-dynamic-list-input-ring ()
"Display a list of recent inputs entered into the current buffer."
(interactive nil comint-mode)
(if (or (not (ring-p comint-input-ring))
(ring-empty-p comint-input-ring))
(message "No history")
(let ((history nil)
(history-buffer " *Input History*")
(conf (current-window-configuration)))
;; We have to build up a list ourselves from the ring vector.
(dotimes (index (ring-length comint-input-ring))
(push (ring-ref comint-input-ring index) history))
;; Show them most-recent-first.
(setq history (nreverse history))
;; Change "completion" to "history reference"
;; to make the display accurate.
(with-output-to-temp-buffer history-buffer
(display-completion-list history)
(set-buffer history-buffer)
(let ((keymap (make-sparse-keymap)))
(set-keymap-parent keymap (current-local-map))
(define-key keymap "\C-m" 'comint-dynamic-list-input-ring-select)
(use-local-map keymap))
(forward-line 3)
(while (search-backward "completion" nil 'move)
(replace-match (apply #'propertize "history reference"
(text-properties-at (point))))))
(sit-for 0)
(message "Hit space to flush")
(setq comint-dynamic-list-input-ring-window-conf conf)
(let ((ch (read-event)))
(if (eq ch ?\s)
(set-window-configuration conf)
(push ch unread-command-events))))))