Emacs: Keyboard Macro

By Xah Lee. Date: . Last updated: .

This page shows you how to use emacs keyboard macro feature.

geek vs non geek repetitive tasks
〔png version 739×485 〕 (original bitmap drawing by Bruno Oliveira. Used with permission)

Emacs keyboard macro (kmacro) feature lets you record and playback keystrokes. The key strokes can include calling any emacs commands.

How to Record a Sequence of Keystrokes?

  1. To start recording, press 【Ctrl+x (】 (kmacro-start-macro).
  2. Type your keystrokes.
  3. To stop recording, press 【Ctrl+x )】 (kmacro-end-macro).

If you made a mistake, you can cancel 【Ctrl+g】 (keyboard-quit) and start over.

Run Keyboard Macro

To run the keystrokes you've just recorded, call one of:

Most Useful Keyboard Macro Commands

Here are the common keyboard macro commands:

Primary Keyboard Macro Commands
Command NameKey
start-kbd-macroCtrl+x (
end-kbd-macroCtrl+x )
kmacro-end-and-call-macroCtrl+x e

Note that kmacro-end-and-call-macro is just like call-last-kbd-macro, except that if a kmacro recording is still on-going, it ends it first.

Note: there are more keyboard macro commands than listed above. To list them, Alt+x apropos-command then type “macro”.

Save Keyboard Macro

If you want to use your keyboard macro for future use, you can save it. To save the macro:

  1. Alt+x name-last-kbd-macro and give it a name.
  2. Alt+x insert-kbd-macro. This will insert the lisp code for a named kmacro at the cursor position.
  3. Copy and Paste the code into your emacs init file.
  4. In any future emacs session, you can call your kmacro by name just like any emacs command.

Once you've saved your macro with a name, you can also give it a keyboard shortcut, such as F8. [see Emacs: How to Define Keys]

Keyboard Macro Examples

Emacs Edit Exercise: puthash Unicode

Like my tutorial? Put $5 at patreon

Or Buy Xah Emacs Tutorial

Or buy a nice keyboard: Best Keyboard for Emacs

Ask me question on patreon