GNU Emacs
Emacs
Dashboard

7.11 Repeating a Command

Many simple commands, such as those invoked with a single key or with M-x command-name RET, can be repeated by invoking them with a numeric argument that serves as a repeat count (see Numeric Arguments). However, if the command you want to repeat prompts for input, or uses a numeric argument in another way, that method won’t work.

The command C-x z ( repeat) provides another way to repeat an Emacs command many times. This command repeats the previous Emacs command, whatever that was. Repeating a command uses the same arguments that were used before; it does not read new arguments each time.

To repeat the command more than once, type additional z’s: each z repeats the command one more time. Repetition ends when you type a character other than z or press a mouse button.

For example, suppose you type C-u 2 0 C-d to delete 20 characters. You can repeat that command (including its argument) three additional times, to delete a total of 80 characters, by typing C-x z z z. The first C-x z repeats the command once, and each subsequent z repeats it once again.

Also you can activate repeat-mode that temporarily enables a transient mode with short keys after a limited number of commands. Currently supported shorter key sequences are C-x u u instead of C-x u C-x u to undo many changes, C-x o o instead of C-x o C-x o to switch several windows, C-x { { } } ^ ^ v v to resize the selected window interactively, M-g n n p p to navigate next-error matches, and C-x ] ] [ [ to navigate through pages. Any other key exits transient mode and then is executed normally. The user option repeat-exit-key defines an additional key to exit this transient mode. Also it’s possible to break the repetition chain automatically after some idle time by customizing the user option repeat-exit-timeout to specify the idle time in seconds after which this transient mode will be turned off.