Mercurial > emacs
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 |
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 | 2 @c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 2000, 2001, |
79791 | 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 | 10 In this chapter we describe how to record a sequence of editing |
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 | 15 about to type @kbd{C-n M-d C-d} forty times, you can speed your work by |
16 defining a keyboard macro to do @kbd{C-n M-d C-d}, and then executing | |
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 | 19 You define a keyboard macro by executing and recording the commands |
20 which are its definition. Put differently, as you define a keyboard | |
21 macro, the definition is being executed for the first time. This way, | |
22 you can see the effects of your commands, so that you don't have to | |
23 figure them out in your head. When you close the definition, the | |
24 keyboard macro is defined and also has been, in effect, executed once. | |
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 | 41 * Keyboard Macro Step-Edit:: Interactively executing and editing a keyboard |
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 | 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 | 158 exits a recursive edit that started within the macro, it works as |
159 you'd expect. But if it exits a recursive edit that started before | |
160 you invoked the keyboard macro, it also necessarily exits the keyboard | |
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 | 190 @table @kbd |
191 @item C-x C-k C-k | |
192 Execute the keyboard macro at the head of the ring (@code{kmacro-end-or-call-macro-repeat}). | |
193 @item C-x C-k C-n | |
194 Rotate the keyboard macro ring to the next macro (defined earlier) | |
195 (@code{kmacro-cycle-ring-next}). | |
196 @item C-x C-k C-p | |
197 Rotate the keyboard macro ring to the previous macro (defined later) | |
198 (@code{kmacro-cycle-ring-previous}). | |
199 @end table | |
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 | 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 | 242 defined keyboard macro.'' For instance, @kbd{C-x e} will execute that |
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 | 245 @ignore @c This interface is too kludgy |
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 | 260 @end ignore |
52224
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
261 |
68548 | 262 @ignore @c This is just too much feeping creaturism. |
263 @c If you are reusing certain macros enough to want these, | |
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 | 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 | 294 @table @kbd |
295 @item C-x C-k C-i | |
296 Insert the keyboard macro counter value in the buffer | |
297 (@code{kmacro-insert-counter}). | |
298 @item C-x C-k C-c | |
299 Set the keyboard macro counter (@code{kmacro-set-counter}). | |
300 @item C-x C-k C-a | |
301 Add the prefix arg to the keyboard macro counter (@code{kmacro-add-counter}). | |
302 @item C-x C-k C-f | |
303 Specify the format for inserting the keyboard macro counter | |
304 (@code{kmacro-set-format}). | |
305 @end table | |
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 | 383 @table @kbd |
384 @item C-x q | |
385 When this point is reached during macro execution, ask for confirmation | |
386 (@code{kbd-macro-query}). | |
387 @end table | |
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 | 434 @item C-x C-k n |
435 Give a command name (for the duration of the Emacs session) to the most | |
436 recently defined keyboard macro (@code{kmacro-name-last-macro}). | |
437 @item C-x C-k b | |
438 Bind the most recently defined keyboard macro to a key sequence (for | |
439 the duration of the session) (@code{kmacro-bind-to-key}). | |
440 @item M-x insert-kbd-macro | |
441 Insert in the buffer a keyboard macro's definition, as Lisp code. | |
442 @end table | |
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 | 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 | 510 @table @kbd |
511 @item C-x C-k C-e | |
512 Edit the last defined keyboard macro (@code{kmacro-edit-macro}). | |
513 @item C-x C-k e @var{name} @key{RET} | |
514 Edit a previously defined keyboard macro @var{name} (@code{edit-kbd-macro}). | |
515 @item C-x C-k l | |
516 Edit the last 100 keystrokes as a keyboard macro | |
517 (@code{kmacro-edit-lossage}). | |
518 @end table | |
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 | 567 @kbd{@key{TAB}} executes the current command, as well as all similar |
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 | 613 |
614 @ignore | |
615 arch-tag: c1b0dd3b-3159-4c08-928f-52e763953e9c | |
616 @end ignore |