Function: repeat-matching-complex-command
repeat-matching-complex-command is an autoloaded, interactive and
byte-compiled function defined in chistory.el.gz.
Signature
(repeat-matching-complex-command &optional PATTERN)
Documentation
Edit and re-evaluate complex command with name matching PATTERN.
Matching occurrences are displayed, most recent first, until you select a form for evaluation. If PATTERN is empty (or nil), every form in the command history is offered. The form is placed in the minibuffer for editing and the result is evaluated.
Key Bindings
Source Code
;; Defined in /usr/src/emacs/lisp/chistory.el.gz
;;;###autoload
(defun repeat-matching-complex-command (&optional pattern)
"Edit and re-evaluate complex command with name matching PATTERN.
Matching occurrences are displayed, most recent first, until you select
a form for evaluation. If PATTERN is empty (or nil), every form in the
command history is offered. The form is placed in the minibuffer for
editing and the result is evaluated."
(interactive "sRedo Command (regexp): ")
(if pattern
(if (string-match "[^ \t]" pattern)
(setq pattern (substring pattern (match-beginning 0)))
(setq pattern nil)))
(let ((history command-history)
(temp)
(what))
(while (and history (not what))
(setq temp (car history))
(if (and (or (not pattern) (string-match pattern (symbol-name (car temp))))
(y-or-n-p (format "Redo %S? " temp)))
(setq what (car history))
(setq history (cdr history))))
(if (not what)
(error "Command history exhausted")
;; Try to remove any useless command history element for this command.
(if (eq (car (car command-history)) 'repeat-matching-complex-command)
(setq command-history (cdr command-history)))
(edit-and-eval-command "Redo: " what))))