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 https://plus.google.com/102451193315916178828/posts/MGxauXypb1Y]. 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 (】 (Alt+x kmacro-start-macro).
  2. Type your keystrokes.
  3. To stop recording, press 【Ctrl+x )】 (Alt+x kmacro-end-macro).

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

Run Keyboard Macro

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

Most Useful Keyboard Macro Commands

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

emacs macros 2018-06-19 8a530
example of saved emacs macros

Key macro can be saved for future use.

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 future emacs session, you can call your kmacro by name. e.g. Alt+x name.

You can now also give it a keyboard shortcut, such as F8. [see Emacs: How to Define Keys]

Keyboard Macro Video Demo

emacs keyboard macro demo

Emacs Keyboard Macro Topic

  1. Keyboard Macro
  2. Key Macro Example: Add Title of URL
  3. Key Macro Example: Add HTML Attribute
  4. Key Macro Example: Modify Webfeed Entries
  5. Key Macro Example: Insert All Unicode Bullets
  6. Key Macro Example: Eval Emacs Lisp Repeatedly

Emacs Efficiency Topic

  1. Keyboard Macro
  2. Completion
  3. Abbrev Mode
  4. Use Alias for Fast M-x
  5. Jump to Previous Mark
  6. Repeat Last Prompted Command
  7. Tips on Long Term Emacs Productivity

If you have a question, put $5 at patreon and message me.
Or Buy Xah Emacs Tutorial
Or buy a nice keyboard: Best Keyboards for Emacs


Emacs Lisp