O'Reilly logo

Learning GNU Emacs, Second Edition by Eric S. Raymond, Bill Rosenblatt, Debra Cameron

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Defining a Macro

To start defining a macro, type C-x (. The abbreviation Def appears on the mode line, showing that you are in macro definition mode. In this mode, Emacs records all the keystrokes that you type, whether they are commands or literal text, so that you can replay them later. To end the macro, type C-x ); you leave the macro definition mode, and Emacs stops recording your keystrokes. Emacs also stops recording your keystrokes automatically if an error occurs or if you press C-g.

While you’re defining a macro, Emacs acts on your keystrokes as well as recording them: that is, anything you type while in macro definition mode is treated as a regular command and executed. While you’re defining a macro, you’re doing completely normal editing. That way you can see that the macro does exactly what you want it to, and you can cancel it (with C-g) if you notice that the macro isn’t really quite what you want. Unfortunately, it’s very difficult to edit a macro in Emacs. If you make a mistake, your only real option is to cancel the macro and start again. [56]

To execute your macro, type C-x e (for call-last-kbd-macro). Emacs then replays your keystrokes exactly as you gave them. You can have only one active macro at a time. If you define another one, this new one becomes the active macro and overwrites any that you defined before.

Example

Example

Here’s a quick example that shows how to define and execute a macro. We like to read printouts that are double-spaced and there’s ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required