6.5 Repeating Minibuffer Commands
Every command that uses the minibuffer at least once is recorded on a
special history list, together with the values of its arguments, so that
you can repeat the entire command. In particular, every use of `M-x'
is recorded there, since `M-x' uses the minibuffer to read the command
`C-x <ESC> <ESC>'
Re-execute a recent minibuffer command (`repeat-complex-command').
Within `C-x <ESC> <ESC>', move to previous recorded command
Within `C-x <ESC> <ESC>', move to the next (more recent) recorded
Display the entire command history, showing all the commands `C-x
<ESC> <ESC>' can repeat, most recent first.
`C-x <ESC> <ESC>' is used to re-execute a recent minibuffer-using
command. With no argument, it repeats the last such command. A
numeric argument specifies which command to repeat; one means the last
one, and larger numbers specify earlier ones.
`C-x <ESC> <ESC>' works by turning the previous command into a Lisp
expression and then entering a minibuffer initialized with the text for
that expression. If you type just <RET>, the command is repeated as
before. You can also change the command by editing the Lisp
expression. Whatever expression you finally submit is what will be
executed. The repeated command is added to the front of the command
history unless it is identical to the most recently executed command
Even if you don't understand Lisp syntax, it will probably be obvious
which command is displayed for repetition. If you do not change the
text, you can be sure the command will repeat exactly as before.
If you are in the minibuffer for `C-x <ESC> <ESC>' and the command
shown to you is not the one you want to repeat, you can move around the
list of previous commands using `M-n' and `M-p'. `M-p' replaces the
contents of the minibuffer with the next earlier recorded command, and
`M-n' replaces it with the next later command. After finding the
desired previous command, you can edit its expression and then resubmit
it by typing <RET>. Any editing you have done on the command to be
repeated is lost if you use `M-n' or `M-p'.
`M-n' and `M-p' are specially defined within `C-x <ESC> <ESC>' to
run the commands `previous-history-element' and `next-history-element'.
The list of previous commands using the minibuffer is stored as a
Lisp list in the variable `command-history'. Each element of the list
is a Lisp expression which describes one command and its arguments.
Lisp programs can reexecute a command by feeding the corresponding
`command-history' element to `eval'.
automatically generated by info2www version 220.127.116.11