22.7 Stepwise Editing a Keyboard Macro
You can interactively replay and edit the last keyboard
macro, one command at a time, by typing C-x C-k SPC
(kmacro-step-edit-macro
). Unless you quit the macro using
q or C-g, the edited macro replaces the last macro on the
macro ring.
This macro editing feature shows the last macro in the minibuffer
together with the first (or next) command to be executed, and prompts
you for an action. You can enter ? to get a summary of your
options. These actions are available:
- SPC and y execute the current command, and advance to the
next command in the keyboard macro.
- n, d, and DEL skip and delete the current command.
- f skips the current command in this execution of the keyboard
macro, but doesn't delete it from the macro.
- TAB executes the current command, as well as all similar
commands immediately following the current command; for example, TAB
may be used to insert a sequence of characters (corresponding to a
sequence of
self-insert-command
commands).
- c continues execution (without further editing) until the end of
the keyboard macro. If execution terminates normally, the edited
macro replaces the original keyboard macro.
- C-k skips and deletes the rest of the keyboard macro,
terminates step-editing, and replaces the original keyboard macro
with the edited macro.
- q and C-g cancels the step-editing of the keyboard macro;
discarding any changes made to the keyboard macro.
- i KEY... C-j reads and executes a series of key sequences (not
including the final C-j), and inserts them before the current
command in the keyboard macro, without advancing over the current
command.
- I KEY... reads one key sequence, executes it, and inserts it
before the current command in the keyboard macro, without advancing
over the current command.
- r KEY... C-j reads and executes a series of key sequences (not
including the final C-j), and replaces the current command in
the keyboard macro with them, advancing over the inserted key
sequences.
- R KEY... reads one key sequence, executes it, and replaces the
current command in the keyboard macro with that key sequence,
advancing over the inserted key sequence.
- a KEY... C-j executes the current command, then reads and
executes a series of key sequences (not including the final
C-j), and inserts them after the current command in the keyboard
macro; it then advances over the current command and the inserted key
sequences.
- A KEY... C-j executes the rest of the commands in the keyboard
macro, then reads and executes a series of key sequences (not
including the final C-j), and appends them at the end of the
keyboard macro; it then terminates the step-editing and replaces the
original keyboard macro with the edited macro.