Next: , Previous: , Up: Customization   [Contents][Index]

27.3 Keyboard Macros

A keyboard macro is a command defined by the user to abbreviate a sequence of keys. For example, if you discover that you are about to type C-n C-d forty times, you can speed your work by defining a keyboard macro to invoke C-n C-d and calling it with a repeat count of forty.

C-x (

Start defining a keyboard macro (start-kbd-macro).

C-x )

End the definition of a keyboard macro (end-kbd-macro).

C-x e

Execute the most recent keyboard macro (call-last-kbd-macro).

C-u C-x (

Re-execute last keyboard macro, then add more keys to its definition.

C-x q

When this point is reached during macro execution, ask for confirmation (kbd-macro-query).

M-x name-last-kbd-macro

Give a command name (for the duration of the session) to the most recently defined keyboard macro.

M-x insert-kbd-macro

Insert in the buffer a keyboard macro’s definition, as Lisp code.

Keyboard macros differ from other Emacs commands in that they are written in the Emacs command language rather than in Lisp. This makes it easier for the novice to write them and makes them more convenient as temporary hacks. However, the Emacs command language is not powerful enough as a programming language to be useful for writing anything general or complex. For such things, Lisp must be used.

You define a keyboard macro by executing the commands which are its definition. Put differently, as you are defining a keyboard macro, the definition is being executed for the first time. This way, you see what the effects of your commands are, and don’t have to figure them out in your head. When you are finished, the keyboard macro is defined and also has been executed once. You can then execute the same set of commands again by invoking the macro.

Next: , Previous: , Up: Customization   [Contents][Index]