annotate man/kmacro.texi @ 80401:52454b9e8627

* url-auth.el (url-digest-auth): Changed an if so that the interaction between the PROMPT and OVERWRITE arguments can no longer result in the user being queried twice for the same login and password information.
author Chong Yidong <cyd@stupidchicken.com>
date Mon, 31 Mar 2008 22:02:08 +0000
parents 02b9a9aa5b0c
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
52224
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
1 @c This is part of the Emacs manual.
62477
8ec5d8c5ea78 (Keyboard Macros): Fix menu.
Lute Kamstra <lute@gnu.org>
parents: 60108
diff changeset
2 @c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 2000, 2001,
79791
02b9a9aa5b0c Add 2008 to copyright years.
Glenn Morris <rgm@gnu.org>
parents: 75348
diff changeset
3 @c 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
52224
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
4 @c See file emacs.texi for copying conditions.
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
5 @node Keyboard Macros, Files, Fixit, Top
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
6 @chapter Keyboard Macros
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
7 @cindex defining keyboard macros
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
8 @cindex keyboard macro
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
9
68548
cd4235065942 Minor clarifications.
Richard M. Stallman <rms@gnu.org>
parents: 68313
diff changeset
10 In this chapter we describe how to record a sequence of editing
cd4235065942 Minor clarifications.
Richard M. Stallman <rms@gnu.org>
parents: 68313
diff changeset
11 commands so you can repeat it conveniently later.
52224
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
12
68692
06780217e0ec (Keyboard Macro Counter): Rewrite for clarity.
Richard M. Stallman <rms@gnu.org>
parents: 68639
diff changeset
13 A @dfn{keyboard macro} is a command defined by an Emacs user to stand for
52224
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
14 another sequence of keys. For example, if you discover that you are
68548
cd4235065942 Minor clarifications.
Richard M. Stallman <rms@gnu.org>
parents: 68313
diff changeset
15 about to type @kbd{C-n M-d C-d} forty times, you can speed your work by
cd4235065942 Minor clarifications.
Richard M. Stallman <rms@gnu.org>
parents: 68313
diff changeset
16 defining a keyboard macro to do @kbd{C-n M-d C-d}, and then executing
cd4235065942 Minor clarifications.
Richard M. Stallman <rms@gnu.org>
parents: 68313
diff changeset
17 it 39 more times.
52224
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
18
68548
cd4235065942 Minor clarifications.
Richard M. Stallman <rms@gnu.org>
parents: 68313
diff changeset
19 You define a keyboard macro by executing and recording the commands
cd4235065942 Minor clarifications.
Richard M. Stallman <rms@gnu.org>
parents: 68313
diff changeset
20 which are its definition. Put differently, as you define a keyboard
cd4235065942 Minor clarifications.
Richard M. Stallman <rms@gnu.org>
parents: 68313
diff changeset
21 macro, the definition is being executed for the first time. This way,
cd4235065942 Minor clarifications.
Richard M. Stallman <rms@gnu.org>
parents: 68313
diff changeset
22 you can see the effects of your commands, so that you don't have to
cd4235065942 Minor clarifications.
Richard M. Stallman <rms@gnu.org>
parents: 68313
diff changeset
23 figure them out in your head. When you close the definition, the
cd4235065942 Minor clarifications.
Richard M. Stallman <rms@gnu.org>
parents: 68313
diff changeset
24 keyboard macro is defined and also has been, in effect, executed once.
cd4235065942 Minor clarifications.
Richard M. Stallman <rms@gnu.org>
parents: 68313
diff changeset
25 You can then do the whole thing over again by invoking the macro.
52224
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
26
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
27 Keyboard macros differ from ordinary Emacs commands in that they are
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
28 written in the Emacs command language rather than in Lisp. This makes it
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
29 easier for the novice to write them, and makes them more convenient as
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
30 temporary hacks. However, the Emacs command language is not powerful
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
31 enough as a programming language to be useful for writing anything
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
32 intelligent or general. For such things, Lisp must be used.
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
33
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
34 @menu
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
35 * Basic Keyboard Macro:: Defining and running keyboard macros.
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
36 * Keyboard Macro Ring:: Where previous keyboard macros are saved.
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
37 * Keyboard Macro Counter:: Inserting incrementing numbers in macros.
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
38 * Keyboard Macro Query:: Making keyboard macros do different things each time.
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
39 * Save Keyboard Macro:: Giving keyboard macros names; saving them in files.
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
40 * Edit Keyboard Macro:: Editing keyboard macros.
62477
8ec5d8c5ea78 (Keyboard Macros): Fix menu.
Lute Kamstra <lute@gnu.org>
parents: 60108
diff changeset
41 * Keyboard Macro Step-Edit:: Interactively executing and editing a keyboard
8ec5d8c5ea78 (Keyboard Macros): Fix menu.
Lute Kamstra <lute@gnu.org>
parents: 60108
diff changeset
42 macro.
52224
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
43 @end menu
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
44
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
45 @node Basic Keyboard Macro
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
46 @section Basic Use
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
47
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
48 @table @kbd
74197
a6d2e4685692 (Basic Keyboard Macro): Mention F3/F4 more.
Kim F. Storm <storm@cua.dk>
parents: 72101
diff changeset
49 @item @key{F3}
a6d2e4685692 (Basic Keyboard Macro): Mention F3/F4 more.
Kim F. Storm <storm@cua.dk>
parents: 72101
diff changeset
50 @itemx C-x (
52224
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
51 Start defining a keyboard macro (@code{kmacro-start-macro}).
74197
a6d2e4685692 (Basic Keyboard Macro): Mention F3/F4 more.
Kim F. Storm <storm@cua.dk>
parents: 72101
diff changeset
52 @item @key{F4}
a6d2e4685692 (Basic Keyboard Macro): Mention F3/F4 more.
Kim F. Storm <storm@cua.dk>
parents: 72101
diff changeset
53 If a keyboard macro is being defined, end the definition; otherwise,
a6d2e4685692 (Basic Keyboard Macro): Mention F3/F4 more.
Kim F. Storm <storm@cua.dk>
parents: 72101
diff changeset
54 execute the most recent keyboard macro
a6d2e4685692 (Basic Keyboard Macro): Mention F3/F4 more.
Kim F. Storm <storm@cua.dk>
parents: 72101
diff changeset
55 (@code{kmacro-end-or-call-macro}).
52224
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
56 @item C-x )
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
57 End the definition of a keyboard macro (@code{kmacro-end-macro}).
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
58 @item C-x e
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
59 Execute the most recent keyboard macro (@code{kmacro-end-and-call-macro}).
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
60 First end the definition of the keyboard macro, if currently defining it.
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
61 To immediately execute the keyboard macro again, just repeat the @kbd{e}.
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
62 @item C-u C-x (
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
63 Re-execute last keyboard macro, then add more keys to its definition.
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
64 @item C-u C-u C-x (
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
65 Add more keys to the last keyboard macro without re-executing it.
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
66 @item C-x C-k r
56858
bb41ce14b9fb (Basic Keyboard Macro): `apply-macro-to-region-lines' now operates on
Luc Teirlinck <teirllm@auburn.edu>
parents: 56774
diff changeset
67 Run the last keyboard macro on each line that begins in the region
52224
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
68 (@code{apply-macro-to-region-lines}).
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
69 @end table
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
70
74197
a6d2e4685692 (Basic Keyboard Macro): Mention F3/F4 more.
Kim F. Storm <storm@cua.dk>
parents: 72101
diff changeset
71 @kindex F3
a6d2e4685692 (Basic Keyboard Macro): Mention F3/F4 more.
Kim F. Storm <storm@cua.dk>
parents: 72101
diff changeset
72 @kindex F4
52224
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
73 @kindex C-x (
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
74 @kindex C-x )
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
75 @kindex C-x e
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
76 @findex kmacro-start-macro
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
77 @findex kmacro-end-macro
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
78 @findex kmacro-end-and-call-macro
74197
a6d2e4685692 (Basic Keyboard Macro): Mention F3/F4 more.
Kim F. Storm <storm@cua.dk>
parents: 72101
diff changeset
79 To start defining a keyboard macro, type the @kbd{F3} or @kbd{C-x (} command
52224
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
80 (@code{kmacro-start-macro}). From then on, your keys continue to be
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
81 executed, but also become part of the definition of the macro. @samp{Def}
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
82 appears in the mode line to remind you of what is going on. When you are
74197
a6d2e4685692 (Basic Keyboard Macro): Mention F3/F4 more.
Kim F. Storm <storm@cua.dk>
parents: 72101
diff changeset
83 finished, the @kbd{F4} or @kbd{C-x )} command (@code{kmacro-end-macro}) terminates the
52224
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
84 definition (without becoming part of it!). For example,
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
85
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
86 @example
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
87 C-x ( M-f foo C-x )
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
88 @end example
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
89
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
90 @noindent
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
91 defines a macro to move forward a word and then insert @samp{foo}.
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
92
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
93 The macro thus defined can be invoked again with the @kbd{C-x e}
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
94 command (@code{kmacro-end-and-call-macro}), which may be given a
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
95 repeat count as a numeric argument to execute the macro many times.
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
96 If you enter @kbd{C-x e} while defining a macro, the macro is
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
97 terminated and executed immediately.
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
98
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
99 After executing the macro with @kbd{C-x e}, you can use @kbd{e}
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
100 repeatedly to immediately repeat the macro one or more times. For example,
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
101
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
102 @example
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
103 C-x ( xyz C-x e e e
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
104 @end example
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
105
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
106 @noindent
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
107 inserts @samp{xyzxyzxyzxyz} in the current buffer.
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
108
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
109 @kbd{C-x )} can also be given a repeat count as an argument, in
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
110 which case it repeats the macro that many times right after defining
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
111 it, but defining the macro counts as the first repetition (since it is
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
112 executed as you define it). Therefore, giving @kbd{C-x )} an argument
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
113 of 4 executes the macro immediately 3 additional times. An argument
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
114 of zero to @kbd{C-x e} or @kbd{C-x )} means repeat the macro
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
115 indefinitely (until it gets an error or you type @kbd{C-g} or, on
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
116 MS-DOS, @kbd{C-@key{BREAK}}).
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
117
60108
36b2efe4eb14 (Basic Keyboard Macro): Doc F3, F4.
Richard M. Stallman <rms@gnu.org>
parents: 58719
diff changeset
118 The key @key{F4} is like a combination of @kbd{C-x )} and @kbd{C-x
36b2efe4eb14 (Basic Keyboard Macro): Doc F3, F4.
Richard M. Stallman <rms@gnu.org>
parents: 58719
diff changeset
119 e}. If you're defining a macro, @key{F4} ends the definition.
74197
a6d2e4685692 (Basic Keyboard Macro): Mention F3/F4 more.
Kim F. Storm <storm@cua.dk>
parents: 72101
diff changeset
120 Otherwise it executes the last macro. For example,
a6d2e4685692 (Basic Keyboard Macro): Mention F3/F4 more.
Kim F. Storm <storm@cua.dk>
parents: 72101
diff changeset
121
a6d2e4685692 (Basic Keyboard Macro): Mention F3/F4 more.
Kim F. Storm <storm@cua.dk>
parents: 72101
diff changeset
122 @example
a6d2e4685692 (Basic Keyboard Macro): Mention F3/F4 more.
Kim F. Storm <storm@cua.dk>
parents: 72101
diff changeset
123 F3 xyz F4 F4 F4
a6d2e4685692 (Basic Keyboard Macro): Mention F3/F4 more.
Kim F. Storm <storm@cua.dk>
parents: 72101
diff changeset
124 @end example
a6d2e4685692 (Basic Keyboard Macro): Mention F3/F4 more.
Kim F. Storm <storm@cua.dk>
parents: 72101
diff changeset
125
a6d2e4685692 (Basic Keyboard Macro): Mention F3/F4 more.
Kim F. Storm <storm@cua.dk>
parents: 72101
diff changeset
126 @noindent
a6d2e4685692 (Basic Keyboard Macro): Mention F3/F4 more.
Kim F. Storm <storm@cua.dk>
parents: 72101
diff changeset
127 inserts @samp{xyzxyzxyz} in the current buffer.
60108
36b2efe4eb14 (Basic Keyboard Macro): Doc F3, F4.
Richard M. Stallman <rms@gnu.org>
parents: 58719
diff changeset
128
52224
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
129 If you wish to repeat an operation at regularly spaced places in the
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
130 text, define a macro and include as part of the macro the commands to move
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
131 to the next place you want to use it. For example, if you want to change
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
132 each line, you should position point at the start of a line, and define a
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
133 macro to change that line and leave point at the start of the next line.
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
134 Then repeating the macro will operate on successive lines.
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
135
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
136 When a command reads an argument with the minibuffer, your
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
137 minibuffer input becomes part of the macro along with the command. So
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
138 when you replay the macro, the command gets the same argument as
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
139 when you entered the macro. For example,
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
140
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
141 @example
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
142 C-x ( C-a C-@key{SPC} C-n M-w C-x b f o o @key{RET} C-y C-x b @key{RET} C-x )
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
143 @end example
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
144
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
145 @noindent
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
146 defines a macro that copies the current line into the buffer
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
147 @samp{foo}, then returns to the original buffer.
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
148
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
149 You can use function keys in a keyboard macro, just like keyboard
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
150 keys. You can even use mouse events, but be careful about that: when
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
151 the macro replays the mouse event, it uses the original mouse position
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
152 of that event, the position that the mouse had while you were defining
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
153 the macro. The effect of this may be hard to predict. (Using the
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
154 current mouse position would be even less predictable.)
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
155
68548
cd4235065942 Minor clarifications.
Richard M. Stallman <rms@gnu.org>
parents: 68313
diff changeset
156 One thing that sometimes works badly in a keyboard macro is the
52224
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
157 command @kbd{C-M-c} (@code{exit-recursive-edit}). When this command
68548
cd4235065942 Minor clarifications.
Richard M. Stallman <rms@gnu.org>
parents: 68313
diff changeset
158 exits a recursive edit that started within the macro, it works as
cd4235065942 Minor clarifications.
Richard M. Stallman <rms@gnu.org>
parents: 68313
diff changeset
159 you'd expect. But if it exits a recursive edit that started before
cd4235065942 Minor clarifications.
Richard M. Stallman <rms@gnu.org>
parents: 68313
diff changeset
160 you invoked the keyboard macro, it also necessarily exits the keyboard
cd4235065942 Minor clarifications.
Richard M. Stallman <rms@gnu.org>
parents: 68313
diff changeset
161 macro as part of the process.
52224
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
162
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
163 After you have terminated the definition of a keyboard macro, you can add
74197
a6d2e4685692 (Basic Keyboard Macro): Mention F3/F4 more.
Kim F. Storm <storm@cua.dk>
parents: 72101
diff changeset
164 to the end of its definition by typing @kbd{C-u F3} or @kbd{C-u C-x (}.
a6d2e4685692 (Basic Keyboard Macro): Mention F3/F4 more.
Kim F. Storm <storm@cua.dk>
parents: 72101
diff changeset
165 This is equivalent
52224
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
166 to plain @kbd{C-x (} followed by retyping the whole definition so far. As
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
167 a consequence it re-executes the macro as previously defined.
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
168
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
169 You can also add to the end of the definition of the last keyboard
56654
10fec56d4052 (Basic Keyboard Macro, Save Keyboard Macro): Fix typos.
Luc Teirlinck <teirllm@auburn.edu>
parents: 52401
diff changeset
170 macro without re-executing it by typing @kbd{C-u C-u C-x (}.
52224
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
171
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
172 The variable @code{kmacro-execute-before-append} specifies whether
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
173 a single @kbd{C-u} prefix causes the existing macro to be re-executed
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
174 before appending to it.
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
175
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
176 @findex apply-macro-to-region-lines
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
177 @kindex C-x C-k r
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
178 The command @kbd{C-x C-k r} (@code{apply-macro-to-region-lines})
56858
bb41ce14b9fb (Basic Keyboard Macro): `apply-macro-to-region-lines' now operates on
Luc Teirlinck <teirllm@auburn.edu>
parents: 56774
diff changeset
179 repeats the last defined keyboard macro on each line that begins in
bb41ce14b9fb (Basic Keyboard Macro): `apply-macro-to-region-lines' now operates on
Luc Teirlinck <teirllm@auburn.edu>
parents: 56774
diff changeset
180 the region. It does this line by line, by moving point to the
52224
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
181 beginning of the line and then executing the macro.
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
182
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
183 @node Keyboard Macro Ring
56748
ae642a03d4da (Keyboard Macro Ring): Rename section.
Luc Teirlinck <teirllm@auburn.edu>
parents: 56654
diff changeset
184 @section The Keyboard Macro Ring
52224
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
185
72101
c7e4f78b81a6 Move periods and commas inside quotes.
Richard M. Stallman <rms@gnu.org>
parents: 68692
diff changeset
186 All defined keyboard macros are recorded in the ``keyboard macro ring,''
52224
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
187 a list of sequences of keys. There is only one keyboard macro ring,
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
188 shared by all buffers.
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
189
68548
cd4235065942 Minor clarifications.
Richard M. Stallman <rms@gnu.org>
parents: 68313
diff changeset
190 @table @kbd
cd4235065942 Minor clarifications.
Richard M. Stallman <rms@gnu.org>
parents: 68313
diff changeset
191 @item C-x C-k C-k
cd4235065942 Minor clarifications.
Richard M. Stallman <rms@gnu.org>
parents: 68313
diff changeset
192 Execute the keyboard macro at the head of the ring (@code{kmacro-end-or-call-macro-repeat}).
cd4235065942 Minor clarifications.
Richard M. Stallman <rms@gnu.org>
parents: 68313
diff changeset
193 @item C-x C-k C-n
cd4235065942 Minor clarifications.
Richard M. Stallman <rms@gnu.org>
parents: 68313
diff changeset
194 Rotate the keyboard macro ring to the next macro (defined earlier)
cd4235065942 Minor clarifications.
Richard M. Stallman <rms@gnu.org>
parents: 68313
diff changeset
195 (@code{kmacro-cycle-ring-next}).
cd4235065942 Minor clarifications.
Richard M. Stallman <rms@gnu.org>
parents: 68313
diff changeset
196 @item C-x C-k C-p
cd4235065942 Minor clarifications.
Richard M. Stallman <rms@gnu.org>
parents: 68313
diff changeset
197 Rotate the keyboard macro ring to the previous macro (defined later)
cd4235065942 Minor clarifications.
Richard M. Stallman <rms@gnu.org>
parents: 68313
diff changeset
198 (@code{kmacro-cycle-ring-previous}).
cd4235065942 Minor clarifications.
Richard M. Stallman <rms@gnu.org>
parents: 68313
diff changeset
199 @end table
cd4235065942 Minor clarifications.
Richard M. Stallman <rms@gnu.org>
parents: 68313
diff changeset
200
58719
939c9f3f6cd6 Several small changes in addition to the following.
Luc Teirlinck <teirllm@auburn.edu>
parents: 57042
diff changeset
201 All commands which operate on the keyboard macro ring use the
52224
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
202 same @kbd{C-x C-k} prefix. Most of these commands can be executed and
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
203 repeated immediately after each other without repeating the @kbd{C-x
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
204 C-k} prefix. For example,
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
205
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
206 @example
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
207 C-x C-k C-p C-p C-k C-k C-k C-n C-n C-k C-p C-k C-d
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
208 @end example
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
209
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
210 @noindent
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
211 will rotate the keyboard macro ring to the ``second previous'' macro,
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
212 execute the resulting head macro three times, rotate back to the
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
213 original head macro, execute that once, rotate to the ``previous''
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
214 macro, execute that, and finally delete it from the macro ring.
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
215
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
216 @findex kmacro-end-or-call-macro-repeat
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
217 @kindex C-x C-k C-k
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
218 The command @kbd{C-x C-k C-k} (@code{kmacro-end-or-call-macro-repeat})
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
219 executes the keyboard macro at the head of the macro ring. You can
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
220 repeat the macro immediately by typing another @kbd{C-k}, or you can
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
221 rotate the macro ring immediately by typing @kbd{C-n} or @kbd{C-p}.
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
222
68548
cd4235065942 Minor clarifications.
Richard M. Stallman <rms@gnu.org>
parents: 68313
diff changeset
223 When a keyboard macro is being defined, @kbd{C-x C-k C-k} behaves like
58719
939c9f3f6cd6 Several small changes in addition to the following.
Luc Teirlinck <teirllm@auburn.edu>
parents: 57042
diff changeset
224 @kbd{C-x )} except that, immediately afterward, you can use most key
939c9f3f6cd6 Several small changes in addition to the following.
Luc Teirlinck <teirllm@auburn.edu>
parents: 57042
diff changeset
225 bindings of this section without the @kbd{C-x C-k} prefix. For
939c9f3f6cd6 Several small changes in addition to the following.
Luc Teirlinck <teirllm@auburn.edu>
parents: 57042
diff changeset
226 instance, another @kbd{C-k} will re-execute the macro.
939c9f3f6cd6 Several small changes in addition to the following.
Luc Teirlinck <teirllm@auburn.edu>
parents: 57042
diff changeset
227
52224
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
228 @findex kmacro-cycle-ring-next
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
229 @kindex C-x C-k C-n
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
230 @findex kmacro-cycle-ring-previous
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
231 @kindex C-x C-k C-p
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
232 The commands @kbd{C-x C-k C-n} (@code{kmacro-cycle-ring-next}) and
58719
939c9f3f6cd6 Several small changes in addition to the following.
Luc Teirlinck <teirllm@auburn.edu>
parents: 57042
diff changeset
233 @kbd{C-x C-k C-p} (@code{kmacro-cycle-ring-previous}) rotate the
52224
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
234 macro ring, bringing the next or previous keyboard macro to the head
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
235 of the macro ring. The definition of the new head macro is displayed
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
236 in the echo area. You can continue to rotate the macro ring
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
237 immediately by repeating just @kbd{C-n} and @kbd{C-p} until the
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
238 desired macro is at the head of the ring. To execute the new macro
56654
10fec56d4052 (Basic Keyboard Macro, Save Keyboard Macro): Fix typos.
Luc Teirlinck <teirllm@auburn.edu>
parents: 52401
diff changeset
239 ring head immediately, just type @kbd{C-k}.
52224
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
240
56748
ae642a03d4da (Keyboard Macro Ring): Rename section.
Luc Teirlinck <teirllm@auburn.edu>
parents: 56654
diff changeset
241 Note that Emacs treats the head of the macro ring as the ``last
68548
cd4235065942 Minor clarifications.
Richard M. Stallman <rms@gnu.org>
parents: 68313
diff changeset
242 defined keyboard macro.'' For instance, @kbd{C-x e} will execute that
cd4235065942 Minor clarifications.
Richard M. Stallman <rms@gnu.org>
parents: 68313
diff changeset
243 macro, and @kbd{C-x C-k n} will give it a name.
56748
ae642a03d4da (Keyboard Macro Ring): Rename section.
Luc Teirlinck <teirllm@auburn.edu>
parents: 56654
diff changeset
244
68548
cd4235065942 Minor clarifications.
Richard M. Stallman <rms@gnu.org>
parents: 68313
diff changeset
245 @ignore @c This interface is too kludgy
cd4235065942 Minor clarifications.
Richard M. Stallman <rms@gnu.org>
parents: 68313
diff changeset
246 @c and the functionality duplicates the functionality above -- rms.
52224
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
247 @findex kmacro-view-macro-repeat
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
248 @kindex C-x C-k C-v
58719
939c9f3f6cd6 Several small changes in addition to the following.
Luc Teirlinck <teirllm@auburn.edu>
parents: 57042
diff changeset
249 The command @kbd{C-x C-k C-v} (@code{kmacro-view-macro-repeat})
52224
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
250 displays the last keyboard macro, or when repeated (with @kbd{C-v}),
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
251 it displays the previous macro on the macro ring, just like @kbd{C-x
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
252 C-k C-p}, but without actually rotating the macro ring. If you enter
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
253 @kbd{C-k} immediately after displaying a macro from the ring, that
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
254 macro is executed, but still without altering the macro ring.
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
255
58719
939c9f3f6cd6 Several small changes in addition to the following.
Luc Teirlinck <teirllm@auburn.edu>
parents: 57042
diff changeset
256 So while e.g. @kbd{C-x C-k C-p C-p C-p C-k C-k} makes the 3rd previous
52224
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
257 macro the current macro and executes it twice, @kbd{C-x C-k C-v C-v
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
258 C-v C-k C-k} will display and execute the 3rd previous macro once and
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
259 then the current macro once.
68548
cd4235065942 Minor clarifications.
Richard M. Stallman <rms@gnu.org>
parents: 68313
diff changeset
260 @end ignore
52224
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
261
68548
cd4235065942 Minor clarifications.
Richard M. Stallman <rms@gnu.org>
parents: 68313
diff changeset
262 @ignore @c This is just too much feeping creaturism.
cd4235065942 Minor clarifications.
Richard M. Stallman <rms@gnu.org>
parents: 68313
diff changeset
263 @c If you are reusing certain macros enough to want these,
cd4235065942 Minor clarifications.
Richard M. Stallman <rms@gnu.org>
parents: 68313
diff changeset
264 @c you should give then names. -- rms
52224
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
265 @findex kmacro-delete-ring-head
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
266 @kindex C-x C-k C-d
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
267
58719
939c9f3f6cd6 Several small changes in addition to the following.
Luc Teirlinck <teirllm@auburn.edu>
parents: 57042
diff changeset
268 The command @kbd{C-x C-k C-d} (@code{kmacro-delete-ring-head})
52224
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
269 removes and deletes the macro currently at the head of the macro
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
270 ring. You can use this to delete a macro that didn't work as
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
271 expected, or which you don't need anymore.
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
272
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
273 @findex kmacro-swap-ring
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
274 @kindex C-x C-k C-t
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
275
58719
939c9f3f6cd6 Several small changes in addition to the following.
Luc Teirlinck <teirllm@auburn.edu>
parents: 57042
diff changeset
276 The command @kbd{C-x C-k C-t} (@code{kmacro-swap-ring})
52224
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
277 interchanges the head of the macro ring with the previous element on
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
278 the macro ring.
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
279
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
280 @findex kmacro-call-ring-2nd-repeat
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
281 @kindex C-x C-k C-l
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
282
58719
939c9f3f6cd6 Several small changes in addition to the following.
Luc Teirlinck <teirllm@auburn.edu>
parents: 57042
diff changeset
283 The command @kbd{C-x C-k C-l} (@code{kmacro-call-ring-2nd-repeat})
52224
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
284 executes the previous (rather than the head) element on the macro ring.
68548
cd4235065942 Minor clarifications.
Richard M. Stallman <rms@gnu.org>
parents: 68313
diff changeset
285 @end ignore
52224
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
286
58719
939c9f3f6cd6 Several small changes in addition to the following.
Luc Teirlinck <teirllm@auburn.edu>
parents: 57042
diff changeset
287 @vindex kmacro-ring-max
939c9f3f6cd6 Several small changes in addition to the following.
Luc Teirlinck <teirllm@auburn.edu>
parents: 57042
diff changeset
288 The maximum number of macros stored in the keyboard macro ring is
939c9f3f6cd6 Several small changes in addition to the following.
Luc Teirlinck <teirllm@auburn.edu>
parents: 57042
diff changeset
289 determined by the customizable variable @code{kmacro-ring-max}.
939c9f3f6cd6 Several small changes in addition to the following.
Luc Teirlinck <teirllm@auburn.edu>
parents: 57042
diff changeset
290
52224
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
291 @node Keyboard Macro Counter
56774
83b46711cad2 (Keyboard Macro Counter, Keyboard Macro Step-Edit): Change section names.
Luc Teirlinck <teirllm@auburn.edu>
parents: 56748
diff changeset
292 @section The Keyboard Macro Counter
52224
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
293
68548
cd4235065942 Minor clarifications.
Richard M. Stallman <rms@gnu.org>
parents: 68313
diff changeset
294 @table @kbd
cd4235065942 Minor clarifications.
Richard M. Stallman <rms@gnu.org>
parents: 68313
diff changeset
295 @item C-x C-k C-i
cd4235065942 Minor clarifications.
Richard M. Stallman <rms@gnu.org>
parents: 68313
diff changeset
296 Insert the keyboard macro counter value in the buffer
cd4235065942 Minor clarifications.
Richard M. Stallman <rms@gnu.org>
parents: 68313
diff changeset
297 (@code{kmacro-insert-counter}).
cd4235065942 Minor clarifications.
Richard M. Stallman <rms@gnu.org>
parents: 68313
diff changeset
298 @item C-x C-k C-c
cd4235065942 Minor clarifications.
Richard M. Stallman <rms@gnu.org>
parents: 68313
diff changeset
299 Set the keyboard macro counter (@code{kmacro-set-counter}).
cd4235065942 Minor clarifications.
Richard M. Stallman <rms@gnu.org>
parents: 68313
diff changeset
300 @item C-x C-k C-a
cd4235065942 Minor clarifications.
Richard M. Stallman <rms@gnu.org>
parents: 68313
diff changeset
301 Add the prefix arg to the keyboard macro counter (@code{kmacro-add-counter}).
cd4235065942 Minor clarifications.
Richard M. Stallman <rms@gnu.org>
parents: 68313
diff changeset
302 @item C-x C-k C-f
cd4235065942 Minor clarifications.
Richard M. Stallman <rms@gnu.org>
parents: 68313
diff changeset
303 Specify the format for inserting the keyboard macro counter
cd4235065942 Minor clarifications.
Richard M. Stallman <rms@gnu.org>
parents: 68313
diff changeset
304 (@code{kmacro-set-format}).
cd4235065942 Minor clarifications.
Richard M. Stallman <rms@gnu.org>
parents: 68313
diff changeset
305 @end table
cd4235065942 Minor clarifications.
Richard M. Stallman <rms@gnu.org>
parents: 68313
diff changeset
306
58719
939c9f3f6cd6 Several small changes in addition to the following.
Luc Teirlinck <teirllm@auburn.edu>
parents: 57042
diff changeset
307 Each keyboard macro has an associated counter. Normally, the
52224
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
308 macro counter is initialized to 0 when you start defining the macro,
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
309 and incremented by 1 after each insertion of the counter value;
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
310 that is, if you insert the macro counter twice while defining the
56748
ae642a03d4da (Keyboard Macro Ring): Rename section.
Luc Teirlinck <teirllm@auburn.edu>
parents: 56654
diff changeset
311 macro, the counter will increase by 2 on each repetition of the macro.
52224
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
312
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
313 @findex kmacro-insert-counter
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
314 @kindex C-x C-k C-i
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
315 The command @kbd{C-x C-k C-i} (@code{kmacro-insert-counter}) inserts
68692
06780217e0ec (Keyboard Macro Counter): Rewrite for clarity.
Richard M. Stallman <rms@gnu.org>
parents: 68639
diff changeset
316 the current value of the current keyboard macro's counter, and
06780217e0ec (Keyboard Macro Counter): Rewrite for clarity.
Richard M. Stallman <rms@gnu.org>
parents: 68639
diff changeset
317 increments the counter by 1. You can use a numeric prefix argument to
06780217e0ec (Keyboard Macro Counter): Rewrite for clarity.
Richard M. Stallman <rms@gnu.org>
parents: 68639
diff changeset
318 specify a different increment. If you just specify a @kbd{C-u}
06780217e0ec (Keyboard Macro Counter): Rewrite for clarity.
Richard M. Stallman <rms@gnu.org>
parents: 68639
diff changeset
319 prefix, then the increment is zero, so it repeats the last inserted
06780217e0ec (Keyboard Macro Counter): Rewrite for clarity.
Richard M. Stallman <rms@gnu.org>
parents: 68639
diff changeset
320 counter value. For example, if you enter the following sequence while
06780217e0ec (Keyboard Macro Counter): Rewrite for clarity.
Richard M. Stallman <rms@gnu.org>
parents: 68639
diff changeset
321 defining a macro
52224
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
322
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
323 @example
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
324 C-x C-k C-i C-x C-k C-i C-u C-x C-k C-i C-x C-k C-i
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
325 @end example
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
326
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
327 @noindent
68692
06780217e0ec (Keyboard Macro Counter): Rewrite for clarity.
Richard M. Stallman <rms@gnu.org>
parents: 68639
diff changeset
328 it inserts @samp{0112} in the buffer. The next two iterations
06780217e0ec (Keyboard Macro Counter): Rewrite for clarity.
Richard M. Stallman <rms@gnu.org>
parents: 68639
diff changeset
329 of the macro will insert @samp{3445} and @samp{6778}.
52224
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
330
68692
06780217e0ec (Keyboard Macro Counter): Rewrite for clarity.
Richard M. Stallman <rms@gnu.org>
parents: 68639
diff changeset
331 This command usually only makes sense while defining a keyboard
06780217e0ec (Keyboard Macro Counter): Rewrite for clarity.
Richard M. Stallman <rms@gnu.org>
parents: 68639
diff changeset
332 macro. But its behavior when no keyboard macro is being defined or
06780217e0ec (Keyboard Macro Counter): Rewrite for clarity.
Richard M. Stallman <rms@gnu.org>
parents: 68639
diff changeset
333 executed is predictable: it inserts and increments the counter of the
06780217e0ec (Keyboard Macro Counter): Rewrite for clarity.
Richard M. Stallman <rms@gnu.org>
parents: 68639
diff changeset
334 macro at the head of the keyboard macro ring.
58719
939c9f3f6cd6 Several small changes in addition to the following.
Luc Teirlinck <teirllm@auburn.edu>
parents: 57042
diff changeset
335
52224
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
336 @findex kmacro-set-counter
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
337 @kindex C-x C-k C-c
68692
06780217e0ec (Keyboard Macro Counter): Rewrite for clarity.
Richard M. Stallman <rms@gnu.org>
parents: 68639
diff changeset
338 The command @kbd{C-x C-k C-c} (@code{kmacro-set-counter}) sets the
06780217e0ec (Keyboard Macro Counter): Rewrite for clarity.
Richard M. Stallman <rms@gnu.org>
parents: 68639
diff changeset
339 current macro counter to the value of the numeric argument. If you use
06780217e0ec (Keyboard Macro Counter): Rewrite for clarity.
Richard M. Stallman <rms@gnu.org>
parents: 68639
diff changeset
340 it inside the macro, it operates on each repetition of the macro. If
06780217e0ec (Keyboard Macro Counter): Rewrite for clarity.
Richard M. Stallman <rms@gnu.org>
parents: 68639
diff changeset
341 you specify just @kbd{C-u} as the prefix, while executing the macro,
06780217e0ec (Keyboard Macro Counter): Rewrite for clarity.
Richard M. Stallman <rms@gnu.org>
parents: 68639
diff changeset
342 that resets the counter to the value it had at the beginning of the
06780217e0ec (Keyboard Macro Counter): Rewrite for clarity.
Richard M. Stallman <rms@gnu.org>
parents: 68639
diff changeset
343 current repetition of the macro (undoing any increments so far in this
06780217e0ec (Keyboard Macro Counter): Rewrite for clarity.
Richard M. Stallman <rms@gnu.org>
parents: 68639
diff changeset
344 repetition).
52224
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
345
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
346 @findex kmacro-add-counter
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
347 @kindex C-x C-k C-a
68692
06780217e0ec (Keyboard Macro Counter): Rewrite for clarity.
Richard M. Stallman <rms@gnu.org>
parents: 68639
diff changeset
348 The command @kbd{C-x C-k C-a} (@code{kmacro-add-counter}) adds the
06780217e0ec (Keyboard Macro Counter): Rewrite for clarity.
Richard M. Stallman <rms@gnu.org>
parents: 68639
diff changeset
349 prefix argument to the current macro counter. With just @kbd{C-u} as
06780217e0ec (Keyboard Macro Counter): Rewrite for clarity.
Richard M. Stallman <rms@gnu.org>
parents: 68639
diff changeset
350 argument, it resets the counter to the last value inserted by any
06780217e0ec (Keyboard Macro Counter): Rewrite for clarity.
Richard M. Stallman <rms@gnu.org>
parents: 68639
diff changeset
351 keyboard macro. (Normally, when you use this, the last insertion
06780217e0ec (Keyboard Macro Counter): Rewrite for clarity.
Richard M. Stallman <rms@gnu.org>
parents: 68639
diff changeset
352 will be in the same macro and it will be the same counter.)
52224
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
353
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
354 @findex kmacro-set-format
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
355 @kindex C-x C-k C-f
58719
939c9f3f6cd6 Several small changes in addition to the following.
Luc Teirlinck <teirllm@auburn.edu>
parents: 57042
diff changeset
356 The command @kbd{C-x C-k C-f} (@code{kmacro-set-format}) prompts for
939c9f3f6cd6 Several small changes in addition to the following.
Luc Teirlinck <teirllm@auburn.edu>
parents: 57042
diff changeset
357 the format to use when inserting the macro counter. The default
939c9f3f6cd6 Several small changes in addition to the following.
Luc Teirlinck <teirllm@auburn.edu>
parents: 57042
diff changeset
358 format is @samp{%d}, which means to insert the number in decimal
939c9f3f6cd6 Several small changes in addition to the following.
Luc Teirlinck <teirllm@auburn.edu>
parents: 57042
diff changeset
359 without any padding. You can exit with empty minibuffer to reset the
939c9f3f6cd6 Several small changes in addition to the following.
Luc Teirlinck <teirllm@auburn.edu>
parents: 57042
diff changeset
360 format to this default. You can specify any format string that the
939c9f3f6cd6 Several small changes in addition to the following.
Luc Teirlinck <teirllm@auburn.edu>
parents: 57042
diff changeset
361 @code{format} function accepts and that makes sense with a single
939c9f3f6cd6 Several small changes in addition to the following.
Luc Teirlinck <teirllm@auburn.edu>
parents: 57042
diff changeset
362 integer extra argument (@pxref{Formatting Strings,,, elisp, The Emacs
939c9f3f6cd6 Several small changes in addition to the following.
Luc Teirlinck <teirllm@auburn.edu>
parents: 57042
diff changeset
363 Lisp Reference Manual}). Do not put the format string inside double
939c9f3f6cd6 Several small changes in addition to the following.
Luc Teirlinck <teirllm@auburn.edu>
parents: 57042
diff changeset
364 quotes when you insert it in the minibuffer.
939c9f3f6cd6 Several small changes in addition to the following.
Luc Teirlinck <teirllm@auburn.edu>
parents: 57042
diff changeset
365
68692
06780217e0ec (Keyboard Macro Counter): Rewrite for clarity.
Richard M. Stallman <rms@gnu.org>
parents: 68639
diff changeset
366 If you use this command while no keyboard macro is being defined or
58719
939c9f3f6cd6 Several small changes in addition to the following.
Luc Teirlinck <teirllm@auburn.edu>
parents: 57042
diff changeset
367 executed, the new format affects all subsequent macro definitions.
939c9f3f6cd6 Several small changes in addition to the following.
Luc Teirlinck <teirllm@auburn.edu>
parents: 57042
diff changeset
368 Existing macros continue to use the format in effect when they were
939c9f3f6cd6 Several small changes in addition to the following.
Luc Teirlinck <teirllm@auburn.edu>
parents: 57042
diff changeset
369 defined. If you set the format while defining a keyboard macro, this
939c9f3f6cd6 Several small changes in addition to the following.
Luc Teirlinck <teirllm@auburn.edu>
parents: 57042
diff changeset
370 affects the macro being defined from that point on, but it does not
939c9f3f6cd6 Several small changes in addition to the following.
Luc Teirlinck <teirllm@auburn.edu>
parents: 57042
diff changeset
371 affect subsequent macros. Execution of the macro will, at each step,
939c9f3f6cd6 Several small changes in addition to the following.
Luc Teirlinck <teirllm@auburn.edu>
parents: 57042
diff changeset
372 use the format in effect at that step during its definition. Changes
939c9f3f6cd6 Several small changes in addition to the following.
Luc Teirlinck <teirllm@auburn.edu>
parents: 57042
diff changeset
373 to the macro format during execution of a macro, like the
939c9f3f6cd6 Several small changes in addition to the following.
Luc Teirlinck <teirllm@auburn.edu>
parents: 57042
diff changeset
374 corresponding changes during its definition, have no effect on
939c9f3f6cd6 Several small changes in addition to the following.
Luc Teirlinck <teirllm@auburn.edu>
parents: 57042
diff changeset
375 subsequent macros.
939c9f3f6cd6 Several small changes in addition to the following.
Luc Teirlinck <teirllm@auburn.edu>
parents: 57042
diff changeset
376
68692
06780217e0ec (Keyboard Macro Counter): Rewrite for clarity.
Richard M. Stallman <rms@gnu.org>
parents: 68639
diff changeset
377 The format set by @kbd{C-x C-k C-f} does not affect insertion of
58719
939c9f3f6cd6 Several small changes in addition to the following.
Luc Teirlinck <teirllm@auburn.edu>
parents: 57042
diff changeset
378 numbers stored in registers.
52224
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
379
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
380 @node Keyboard Macro Query
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
381 @section Executing Macros with Variations
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
382
68548
cd4235065942 Minor clarifications.
Richard M. Stallman <rms@gnu.org>
parents: 68313
diff changeset
383 @table @kbd
cd4235065942 Minor clarifications.
Richard M. Stallman <rms@gnu.org>
parents: 68313
diff changeset
384 @item C-x q
cd4235065942 Minor clarifications.
Richard M. Stallman <rms@gnu.org>
parents: 68313
diff changeset
385 When this point is reached during macro execution, ask for confirmation
cd4235065942 Minor clarifications.
Richard M. Stallman <rms@gnu.org>
parents: 68313
diff changeset
386 (@code{kbd-macro-query}).
cd4235065942 Minor clarifications.
Richard M. Stallman <rms@gnu.org>
parents: 68313
diff changeset
387 @end table
cd4235065942 Minor clarifications.
Richard M. Stallman <rms@gnu.org>
parents: 68313
diff changeset
388
52224
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
389 @kindex C-x q
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
390 @findex kbd-macro-query
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
391 Using @kbd{C-x q} (@code{kbd-macro-query}), you can get an effect
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
392 similar to that of @code{query-replace}, where the macro asks you each
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
393 time around whether to make a change. While defining the macro,
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
394 type @kbd{C-x q} at the point where you want the query to occur. During
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
395 macro definition, the @kbd{C-x q} does nothing, but when you run the
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
396 macro later, @kbd{C-x q} asks you interactively whether to continue.
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
397
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
398 The valid responses when @kbd{C-x q} asks are @key{SPC} (or @kbd{y}),
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
399 @key{DEL} (or @kbd{n}), @key{RET} (or @kbd{q}), @kbd{C-l} and @kbd{C-r}.
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
400 The answers are the same as in @code{query-replace}, though not all of
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
401 the @code{query-replace} options are meaningful.
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
402
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
403 These responses include @key{SPC} to continue, and @key{DEL} to skip
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
404 the remainder of this repetition of the macro and start right away with
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
405 the next repetition. @key{RET} means to skip the remainder of this
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
406 repetition and cancel further repetitions. @kbd{C-l} redraws the screen
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
407 and asks you again for a character to say what to do.
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
408
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
409 @kbd{C-r} enters a recursive editing level, in which you can perform
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
410 editing which is not part of the macro. When you exit the recursive
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
411 edit using @kbd{C-M-c}, you are asked again how to continue with the
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
412 keyboard macro. If you type a @key{SPC} at this time, the rest of the
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
413 macro definition is executed. It is up to you to leave point and the
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
414 text in a state such that the rest of the macro will do what you
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
415 want.@refill
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
416
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
417 @kbd{C-u C-x q}, which is @kbd{C-x q} with a numeric argument,
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
418 performs a completely different function. It enters a recursive edit
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
419 reading input from the keyboard, both when you type it during the
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
420 definition of the macro, and when it is executed from the macro. During
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
421 definition, the editing you do inside the recursive edit does not become
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
422 part of the macro. During macro execution, the recursive edit gives you
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
423 a chance to do some particularized editing on each repetition.
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
424 @xref{Recursive Edit}.
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
425
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
426 Another way to vary the behavior of a keyboard macro is to use a
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
427 register as a counter, incrementing it on each repetition of the macro.
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
428 @xref{RegNumbers}.
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
429
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
430 @node Save Keyboard Macro
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
431 @section Naming and Saving Keyboard Macros
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
432
68554
9d15d9eabbde (Save Keyboard Macro): Add missing @kbd to @table.
Luc Teirlinck <teirllm@auburn.edu>
parents: 68548
diff changeset
433 @table @kbd
68548
cd4235065942 Minor clarifications.
Richard M. Stallman <rms@gnu.org>
parents: 68313
diff changeset
434 @item C-x C-k n
cd4235065942 Minor clarifications.
Richard M. Stallman <rms@gnu.org>
parents: 68313
diff changeset
435 Give a command name (for the duration of the Emacs session) to the most
cd4235065942 Minor clarifications.
Richard M. Stallman <rms@gnu.org>
parents: 68313
diff changeset
436 recently defined keyboard macro (@code{kmacro-name-last-macro}).
cd4235065942 Minor clarifications.
Richard M. Stallman <rms@gnu.org>
parents: 68313
diff changeset
437 @item C-x C-k b
cd4235065942 Minor clarifications.
Richard M. Stallman <rms@gnu.org>
parents: 68313
diff changeset
438 Bind the most recently defined keyboard macro to a key sequence (for
cd4235065942 Minor clarifications.
Richard M. Stallman <rms@gnu.org>
parents: 68313
diff changeset
439 the duration of the session) (@code{kmacro-bind-to-key}).
cd4235065942 Minor clarifications.
Richard M. Stallman <rms@gnu.org>
parents: 68313
diff changeset
440 @item M-x insert-kbd-macro
cd4235065942 Minor clarifications.
Richard M. Stallman <rms@gnu.org>
parents: 68313
diff changeset
441 Insert in the buffer a keyboard macro's definition, as Lisp code.
cd4235065942 Minor clarifications.
Richard M. Stallman <rms@gnu.org>
parents: 68313
diff changeset
442 @end table
cd4235065942 Minor clarifications.
Richard M. Stallman <rms@gnu.org>
parents: 68313
diff changeset
443
52224
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
444 @cindex saving keyboard macros
57042
b395b3e4c4c7 (Save Keyboard Macro): Replace `name-last-kbd-macro'
Kim F. Storm <storm@cua.dk>
parents: 56858
diff changeset
445 @findex kmacro-name-last-macro
52224
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
446 @kindex C-x C-k n
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
447 If you wish to save a keyboard macro for later use, you can give it
57042
b395b3e4c4c7 (Save Keyboard Macro): Replace `name-last-kbd-macro'
Kim F. Storm <storm@cua.dk>
parents: 56858
diff changeset
448 a name using @kbd{C-x C-k n} (@code{kmacro-name-last-macro}).
56748
ae642a03d4da (Keyboard Macro Ring): Rename section.
Luc Teirlinck <teirllm@auburn.edu>
parents: 56654
diff changeset
449 This reads a name as an argument using the minibuffer and defines that
ae642a03d4da (Keyboard Macro Ring): Rename section.
Luc Teirlinck <teirllm@auburn.edu>
parents: 56654
diff changeset
450 name to execute the last keyboard macro, in its current form. (If you
ae642a03d4da (Keyboard Macro Ring): Rename section.
Luc Teirlinck <teirllm@auburn.edu>
parents: 56654
diff changeset
451 later add to the definition of this macro, that does not alter the
ae642a03d4da (Keyboard Macro Ring): Rename section.
Luc Teirlinck <teirllm@auburn.edu>
parents: 56654
diff changeset
452 name's definition as a macro.) The macro name is a Lisp symbol, and
ae642a03d4da (Keyboard Macro Ring): Rename section.
Luc Teirlinck <teirllm@auburn.edu>
parents: 56654
diff changeset
453 defining it in this way makes it a valid command name for calling with
ae642a03d4da (Keyboard Macro Ring): Rename section.
Luc Teirlinck <teirllm@auburn.edu>
parents: 56654
diff changeset
454 @kbd{M-x} or for binding a key to with @code{global-set-key}
ae642a03d4da (Keyboard Macro Ring): Rename section.
Luc Teirlinck <teirllm@auburn.edu>
parents: 56654
diff changeset
455 (@pxref{Keymaps}). If you specify a name that has a prior definition
ae642a03d4da (Keyboard Macro Ring): Rename section.
Luc Teirlinck <teirllm@auburn.edu>
parents: 56654
diff changeset
456 other than a keyboard macro, an error message is shown and nothing is
ae642a03d4da (Keyboard Macro Ring): Rename section.
Luc Teirlinck <teirllm@auburn.edu>
parents: 56654
diff changeset
457 changed.
52224
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
458
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
459 @cindex binding keyboard macros
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
460 @findex kmacro-bind-to-key
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
461 @kindex C-x C-k b
58719
939c9f3f6cd6 Several small changes in addition to the following.
Luc Teirlinck <teirllm@auburn.edu>
parents: 57042
diff changeset
462 You can also bind the last keyboard macro (in its current form) to a
939c9f3f6cd6 Several small changes in addition to the following.
Luc Teirlinck <teirllm@auburn.edu>
parents: 57042
diff changeset
463 key, using @kbd{C-x C-k b} (@code{kmacro-bind-to-key}) followed by the
939c9f3f6cd6 Several small changes in addition to the following.
Luc Teirlinck <teirllm@auburn.edu>
parents: 57042
diff changeset
464 key sequence you want to bind. You can bind to any key sequence in
939c9f3f6cd6 Several small changes in addition to the following.
Luc Teirlinck <teirllm@auburn.edu>
parents: 57042
diff changeset
465 the global keymap, but since most key sequences already have other
939c9f3f6cd6 Several small changes in addition to the following.
Luc Teirlinck <teirllm@auburn.edu>
parents: 57042
diff changeset
466 bindings, you should select the key sequence carefully. If you try to
939c9f3f6cd6 Several small changes in addition to the following.
Luc Teirlinck <teirllm@auburn.edu>
parents: 57042
diff changeset
467 bind to a key sequence with an existing binding (in any keymap), this
939c9f3f6cd6 Several small changes in addition to the following.
Luc Teirlinck <teirllm@auburn.edu>
parents: 57042
diff changeset
468 command asks you for confirmation before replacing the existing binding.
52224
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
469
68548
cd4235065942 Minor clarifications.
Richard M. Stallman <rms@gnu.org>
parents: 68313
diff changeset
470 To avoid problems caused by overriding existing bindings, the key
52224
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
471 sequences @kbd{C-x C-k 0} through @kbd{C-x C-k 9} and @kbd{C-x C-k A}
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
472 through @kbd{C-x C-k Z} are reserved for your own keyboard macro
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
473 bindings. In fact, to bind to one of these key sequences, you only
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
474 need to type the digit or letter rather than the whole key sequences.
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
475 For example,
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
476
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
477 @example
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
478 C-x C-k b 4
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
479 @end example
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
480
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
481 @noindent
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
482 will bind the last keyboard macro to the key sequence @kbd{C-x C-k 4}.
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
483
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
484 @findex insert-kbd-macro
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
485 Once a macro has a command name, you can save its definition in a file.
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
486 Then it can be used in another editing session. First, visit the file
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
487 you want to save the definition in. Then use this command:
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
488
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
489 @example
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
490 M-x insert-kbd-macro @key{RET} @var{macroname} @key{RET}
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
491 @end example
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
492
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
493 @noindent
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
494 This inserts some Lisp code that, when executed later, will define the
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
495 same macro with the same definition it has now. (You need not
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
496 understand Lisp code to do this, because @code{insert-kbd-macro} writes
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
497 the Lisp code for you.) Then save the file. You can load the file
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
498 later with @code{load-file} (@pxref{Lisp Libraries}). If the file you
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
499 save in is your init file @file{~/.emacs} (@pxref{Init File}) then the
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
500 macro will be defined each time you run Emacs.
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
501
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
502 If you give @code{insert-kbd-macro} a numeric argument, it makes
56748
ae642a03d4da (Keyboard Macro Ring): Rename section.
Luc Teirlinck <teirllm@auburn.edu>
parents: 56654
diff changeset
503 additional Lisp code to record the keys (if any) that you have bound
ae642a03d4da (Keyboard Macro Ring): Rename section.
Luc Teirlinck <teirllm@auburn.edu>
parents: 56654
diff changeset
504 to @var{macroname}, so that the macro will be reassigned the same keys
ae642a03d4da (Keyboard Macro Ring): Rename section.
Luc Teirlinck <teirllm@auburn.edu>
parents: 56654
diff changeset
505 when you load the file.
52224
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
506
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
507 @node Edit Keyboard Macro
56748
ae642a03d4da (Keyboard Macro Ring): Rename section.
Luc Teirlinck <teirllm@auburn.edu>
parents: 56654
diff changeset
508 @section Editing a Keyboard Macro
52224
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
509
68548
cd4235065942 Minor clarifications.
Richard M. Stallman <rms@gnu.org>
parents: 68313
diff changeset
510 @table @kbd
cd4235065942 Minor clarifications.
Richard M. Stallman <rms@gnu.org>
parents: 68313
diff changeset
511 @item C-x C-k C-e
cd4235065942 Minor clarifications.
Richard M. Stallman <rms@gnu.org>
parents: 68313
diff changeset
512 Edit the last defined keyboard macro (@code{kmacro-edit-macro}).
cd4235065942 Minor clarifications.
Richard M. Stallman <rms@gnu.org>
parents: 68313
diff changeset
513 @item C-x C-k e @var{name} @key{RET}
cd4235065942 Minor clarifications.
Richard M. Stallman <rms@gnu.org>
parents: 68313
diff changeset
514 Edit a previously defined keyboard macro @var{name} (@code{edit-kbd-macro}).
cd4235065942 Minor clarifications.
Richard M. Stallman <rms@gnu.org>
parents: 68313
diff changeset
515 @item C-x C-k l
cd4235065942 Minor clarifications.
Richard M. Stallman <rms@gnu.org>
parents: 68313
diff changeset
516 Edit the last 100 keystrokes as a keyboard macro
cd4235065942 Minor clarifications.
Richard M. Stallman <rms@gnu.org>
parents: 68313
diff changeset
517 (@code{kmacro-edit-lossage}).
cd4235065942 Minor clarifications.
Richard M. Stallman <rms@gnu.org>
parents: 68313
diff changeset
518 @end table
cd4235065942 Minor clarifications.
Richard M. Stallman <rms@gnu.org>
parents: 68313
diff changeset
519
52224
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
520 @findex kmacro-edit-macro
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
521 @kindex C-x C-k C-e
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
522 @kindex C-x C-k RET
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
523 You can edit the last keyboard macro by typing @kbd{C-x C-k C-e} or
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
524 @kbd{C-x C-k RET} (@code{kmacro-edit-macro}). This formats the macro
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
525 definition in a buffer and enters a specialized major mode for editing
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
526 it. Type @kbd{C-h m} once in that buffer to display details of how to
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
527 edit the macro. When you are finished editing, type @kbd{C-c C-c}.
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
528
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
529 @findex edit-kbd-macro
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
530 @kindex C-x C-k e
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
531 You can edit a named keyboard macro or a macro bound to a key by typing
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
532 @kbd{C-x C-k e} (@code{edit-kbd-macro}). Follow that with the
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
533 keyboard input that you would use to invoke the macro---@kbd{C-x e} or
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
534 @kbd{M-x @var{name}} or some other key sequence.
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
535
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
536 @findex kmacro-edit-lossage
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
537 @kindex C-x C-k l
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
538 You can edit the last 100 keystrokes as a macro by typing
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
539 @kbd{C-x C-k l} (@code{kmacro-edit-lossage}).
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
540
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
541 @node Keyboard Macro Step-Edit
56774
83b46711cad2 (Keyboard Macro Counter, Keyboard Macro Step-Edit): Change section names.
Luc Teirlinck <teirllm@auburn.edu>
parents: 56748
diff changeset
542 @section Stepwise Editing a Keyboard Macro
52224
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
543
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
544 @findex kmacro-step-edit-macro
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
545 @kindex C-x C-k SPC
60108
36b2efe4eb14 (Basic Keyboard Macro): Doc F3, F4.
Richard M. Stallman <rms@gnu.org>
parents: 58719
diff changeset
546 You can interactively replay and edit the last keyboard
36b2efe4eb14 (Basic Keyboard Macro): Doc F3, F4.
Richard M. Stallman <rms@gnu.org>
parents: 58719
diff changeset
547 macro, one command at a time, by typing @kbd{C-x C-k SPC}
52224
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
548 (@code{kmacro-step-edit-macro}). Unless you quit the macro using
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
549 @kbd{q} or @kbd{C-g}, the edited macro replaces the last macro on the
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
550 macro ring.
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
551
60108
36b2efe4eb14 (Basic Keyboard Macro): Doc F3, F4.
Richard M. Stallman <rms@gnu.org>
parents: 58719
diff changeset
552 This macro editing feature shows the last macro in the minibuffer
36b2efe4eb14 (Basic Keyboard Macro): Doc F3, F4.
Richard M. Stallman <rms@gnu.org>
parents: 58719
diff changeset
553 together with the first (or next) command to be executed, and prompts
36b2efe4eb14 (Basic Keyboard Macro): Doc F3, F4.
Richard M. Stallman <rms@gnu.org>
parents: 58719
diff changeset
554 you for an action. You can enter @kbd{?} to get a summary of your
36b2efe4eb14 (Basic Keyboard Macro): Doc F3, F4.
Richard M. Stallman <rms@gnu.org>
parents: 58719
diff changeset
555 options. These actions are available:
52224
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
556
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
557 @itemize @bullet{}
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
558 @item
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
559 @kbd{SPC} and @kbd{y} execute the current command, and advance to the
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
560 next command in the keyboard macro.
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
561 @item
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
562 @kbd{n}, @kbd{d}, and @kbd{DEL} skip and delete the current command.
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
563 @item
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
564 @kbd{f} skips the current command in this execution of the keyboard
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
565 macro, but doesn't delete it from the macro.
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
566 @item
68313
20ff812ba5b3 Use @key for TAB.
Eli Zaretskii <eliz@gnu.org>
parents: 64890
diff changeset
567 @kbd{@key{TAB}} executes the current command, as well as all similar
20ff812ba5b3 Use @key for TAB.
Eli Zaretskii <eliz@gnu.org>
parents: 64890
diff changeset
568 commands immediately following the current command; for example, @key{TAB}
52224
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
569 may be used to insert a sequence of characters (corresponding to a
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
570 sequence of @code{self-insert-command} commands).
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
571 @item
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
572 @kbd{c} continues execution (without further editing) until the end of
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
573 the keyboard macro. If execution terminates normally, the edited
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
574 macro replaces the original keyboard macro.
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
575 @item
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
576 @kbd{C-k} skips and deletes the rest of the keyboard macro,
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
577 terminates step-editing, and replaces the original keyboard macro
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
578 with the edited macro.
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
579 @item
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
580 @kbd{q} and @kbd{C-g} cancels the step-editing of the keyboard macro;
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
581 discarding any changes made to the keyboard macro.
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
582 @item
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
583 @kbd{i KEY... C-j} reads and executes a series of key sequences (not
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
584 including the final @kbd{C-j}), and inserts them before the current
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
585 command in the keyboard macro, without advancing over the current
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
586 command.
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
587 @item
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
588 @kbd{I KEY...} reads one key sequence, executes it, and inserts it
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
589 before the current command in the keyboard macro, without advancing
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
590 over the current command.
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
591 @item
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
592 @kbd{r KEY... C-j} reads and executes a series of key sequences (not
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
593 including the final @kbd{C-j}), and replaces the current command in
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
594 the keyboard macro with them, advancing over the inserted key
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
595 sequences.
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
596 @item
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
597 @kbd{R KEY...} reads one key sequence, executes it, and replaces the
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
598 current command in the keyboard macro with that key sequence,
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
599 advancing over the inserted key sequence.
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
600 @item
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
601 @kbd{a KEY... C-j} executes the current command, then reads and
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
602 executes a series of key sequences (not including the final
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
603 @kbd{C-j}), and inserts them after the current command in the keyboard
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
604 macro; it then advances over the current command and the inserted key
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
605 sequences.
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
606 @item
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
607 @kbd{A KEY... C-j} executes the rest of the commands in the keyboard
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
608 macro, then reads and executes a series of key sequences (not
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
609 including the final @kbd{C-j}), and appends them at the end of the
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
610 keyboard macro; it then terminates the step-editing and replaces the
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
611 original keyboard macro with the edited macro.
57534ab575bd New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff changeset
612 @end itemize
52401
695cf19ef79e Add arch taglines
Miles Bader <miles@gnu.org>
parents: 52239
diff changeset
613
695cf19ef79e Add arch taglines
Miles Bader <miles@gnu.org>
parents: 52239
diff changeset
614 @ignore
695cf19ef79e Add arch taglines
Miles Bader <miles@gnu.org>
parents: 52239
diff changeset
615 arch-tag: c1b0dd3b-3159-4c08-928f-52e763953e9c
695cf19ef79e Add arch taglines
Miles Bader <miles@gnu.org>
parents: 52239
diff changeset
616 @end ignore