Mercurial > emacs
annotate man/kmacro.texi @ 61075:e27a03f92707
*** empty log message ***
author | Kenichi Handa <handa@m17n.org> |
---|---|
date | Tue, 29 Mar 2005 05:07:34 +0000 |
parents | 36b2efe4eb14 |
children | 8ec5d8c5ea78 9684495d72bc |
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. |
56748
ae642a03d4da
(Keyboard Macro Ring): Rename section.
Luc Teirlinck <teirllm@auburn.edu>
parents:
56654
diff
changeset
|
2 @c Copyright (C) 1985,86,87,93,94,95,97,2000,2001,2002,2003,2004 |
52224
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
3 @c Free Software Foundation, Inc. |
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 |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
10 In this chapter we describe how a sequence of editing commands can |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
11 be recorded and repeated multiple times. |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
12 |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
13 A @dfn{keyboard macro} is a command defined by the user to stand for |
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 |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
15 about to type @kbd{C-n C-d} forty times, you can speed your work by |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
16 defining a keyboard macro to do @kbd{C-n C-d} and calling it with a |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
17 repeat count of forty. |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
18 |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
19 You define a keyboard macro while executing the commands which are the |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
20 definition. Put differently, as you define a keyboard macro, the |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
21 definition is being executed for the first time. This way, you can see |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
22 what the effects of your commands are, so that you don't have to figure |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
23 them out in your head. When you are finished, the keyboard macro is |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
24 defined and also has been, in effect, executed once. You can then do the |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
25 whole thing over again by invoking the macro. |
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. |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
41 * Keyboard Macro Step-Edit:: Interactively executing and editing a keyboard macro. |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
42 @end menu |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
43 |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
44 @node Basic Keyboard Macro |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
45 @section Basic Use |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
46 |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
47 @table @kbd |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
48 @item C-x ( |
60108
36b2efe4eb14
(Basic Keyboard Macro): Doc F3, F4.
Richard M. Stallman <rms@gnu.org>
parents:
58719
diff
changeset
|
49 @itemx @key{F3} |
52224
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
50 Start defining a keyboard macro (@code{kmacro-start-macro}). |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
51 @item C-x ) |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
52 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
|
53 @item C-x e |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
54 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
|
55 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
|
56 To immediately execute the keyboard macro again, just repeat the @kbd{e}. |
60108
36b2efe4eb14
(Basic Keyboard Macro): Doc F3, F4.
Richard M. Stallman <rms@gnu.org>
parents:
58719
diff
changeset
|
57 @item @key{F4} |
36b2efe4eb14
(Basic Keyboard Macro): Doc F3, F4.
Richard M. Stallman <rms@gnu.org>
parents:
58719
diff
changeset
|
58 If a keyboard macro is being defined, end the definition; otherwise, |
36b2efe4eb14
(Basic Keyboard Macro): Doc F3, F4.
Richard M. Stallman <rms@gnu.org>
parents:
58719
diff
changeset
|
59 execute the most recent keyboard macro |
36b2efe4eb14
(Basic Keyboard Macro): Doc F3, F4.
Richard M. Stallman <rms@gnu.org>
parents:
58719
diff
changeset
|
60 (@code{kmacro-end-or-call-macro}). |
52224
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
61 @item C-u C-x ( |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
62 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
|
63 @item C-u C-u C-x ( |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
64 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
|
65 @item C-x q |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
66 When this point is reached during macro execution, ask for confirmation |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
67 (@code{kbd-macro-query}). |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
68 @item C-x C-k n |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
69 Give a command name (for the duration of the session) to the most |
57042
b395b3e4c4c7
(Save Keyboard Macro): Replace `name-last-kbd-macro'
Kim F. Storm <storm@cua.dk>
parents:
56858
diff
changeset
|
70 recently defined keyboard macro (@code{kmacro-name-last-macro}). |
52224
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
71 @item C-x C-k b |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
72 Bind the most recently defined keyboard macro to a key sequence (for |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
73 the duration of the session) (@code{kmacro-bind-to-key}). |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
74 @item M-x insert-kbd-macro |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
75 Insert in the buffer a keyboard macro's definition, as Lisp code. |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
76 @item C-x C-k e |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
77 Edit a previously defined keyboard macro (@code{edit-kbd-macro}). |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
78 @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
|
79 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
|
80 (@code{apply-macro-to-region-lines}). |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
81 @end table |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
82 |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
83 @kindex C-x ( |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
84 @kindex C-x ) |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
85 @kindex C-x e |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
86 @findex kmacro-start-macro |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
87 @findex kmacro-end-macro |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
88 @findex kmacro-end-and-call-macro |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
89 To start defining a keyboard macro, type the @kbd{C-x (} command |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
90 (@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
|
91 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
|
92 appears in the mode line to remind you of what is going on. When you are |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
93 finished, the @kbd{C-x )} command (@code{kmacro-end-macro}) terminates the |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
94 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
|
95 |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
96 @example |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
97 C-x ( M-f foo C-x ) |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
98 @end example |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
99 |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
100 @noindent |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
101 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
|
102 |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
103 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
|
104 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
|
105 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
|
106 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
|
107 terminated and executed immediately. |
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 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
|
110 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
|
111 |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
112 @example |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
113 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
|
114 @end example |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
115 |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
116 @noindent |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
117 inserts @samp{xyzxyzxyzxyz} in the current buffer. |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
118 |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
119 @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
|
120 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
|
121 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
|
122 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
|
123 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
|
124 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
|
125 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
|
126 MS-DOS, @kbd{C-@key{BREAK}}). |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
127 |
60108
36b2efe4eb14
(Basic Keyboard Macro): Doc F3, F4.
Richard M. Stallman <rms@gnu.org>
parents:
58719
diff
changeset
|
128 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
|
129 e}. If you're defining a macro, @key{F4} ends the definition. |
36b2efe4eb14
(Basic Keyboard Macro): Doc F3, F4.
Richard M. Stallman <rms@gnu.org>
parents:
58719
diff
changeset
|
130 Otherwise it executes the last macro. |
36b2efe4eb14
(Basic Keyboard Macro): Doc F3, F4.
Richard M. Stallman <rms@gnu.org>
parents:
58719
diff
changeset
|
131 |
52224
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
132 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
|
133 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
|
134 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
|
135 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
|
136 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
|
137 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
|
138 |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
139 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
|
140 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
|
141 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
|
142 when you entered the macro. For example, |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
143 |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
144 @example |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
145 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
|
146 @end example |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
147 |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
148 @noindent |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
149 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
|
150 @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
|
151 |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
152 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
|
153 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
|
154 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
|
155 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
|
156 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
|
157 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
|
158 |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
159 One thing that doesn't always work well in a keyboard macro is the |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
160 command @kbd{C-M-c} (@code{exit-recursive-edit}). When this command |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
161 exits a recursive edit that started within the macro, it works as you'd |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
162 expect. But if it exits a recursive edit that started before you |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
163 invoked the keyboard macro, it also necessarily exits the keyboard macro |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
164 as part of the process. |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
165 |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
166 After you have terminated the definition of a keyboard macro, you can add |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
167 to the end of its definition by typing @kbd{C-u C-x (}. This is equivalent |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
168 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
|
169 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
|
170 |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
171 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
|
172 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
|
173 |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
174 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
|
175 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
|
176 before appending to it. |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
177 |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
178 @findex apply-macro-to-region-lines |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
179 @kindex C-x C-k r |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
180 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
|
181 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
|
182 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
|
183 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
|
184 |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
185 @node Keyboard Macro Ring |
56748
ae642a03d4da
(Keyboard Macro Ring): Rename section.
Luc Teirlinck <teirllm@auburn.edu>
parents:
56654
diff
changeset
|
186 @section The Keyboard Macro Ring |
52224
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
187 |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
188 All defined keyboard macros are recorded in the ``keyboard macro ring'', |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
189 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
|
190 shared by all buffers. |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
191 |
58719
939c9f3f6cd6
Several small changes in addition to the following.
Luc Teirlinck <teirllm@auburn.edu>
parents:
57042
diff
changeset
|
192 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
|
193 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
|
194 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
|
195 C-k} prefix. For example, |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
196 |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
197 @example |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
198 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
|
199 @end example |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
200 |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
201 @noindent |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
202 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
|
203 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
|
204 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
|
205 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
|
206 |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
207 @findex kmacro-end-or-call-macro-repeat |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
208 @kindex C-x C-k C-k |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
209 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
|
210 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
|
211 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
|
212 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
|
213 |
58719
939c9f3f6cd6
Several small changes in addition to the following.
Luc Teirlinck <teirllm@auburn.edu>
parents:
57042
diff
changeset
|
214 When a keyboard macro is being defined, @kbd{C-x C-k C-k} behaves like |
939c9f3f6cd6
Several small changes in addition to the following.
Luc Teirlinck <teirllm@auburn.edu>
parents:
57042
diff
changeset
|
215 @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
|
216 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
|
217 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
|
218 |
52224
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
219 @findex kmacro-cycle-ring-next |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
220 @kindex C-x C-k C-n |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
221 @findex kmacro-cycle-ring-previous |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
222 @kindex C-x C-k C-p |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
223 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
|
224 @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
|
225 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
|
226 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
|
227 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
|
228 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
|
229 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
|
230 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
|
231 |
56748
ae642a03d4da
(Keyboard Macro Ring): Rename section.
Luc Teirlinck <teirllm@auburn.edu>
parents:
56654
diff
changeset
|
232 Note that Emacs treats the head of the macro ring as the ``last |
ae642a03d4da
(Keyboard Macro Ring): Rename section.
Luc Teirlinck <teirllm@auburn.edu>
parents:
56654
diff
changeset
|
233 defined keyboard macro''. For instance, it is the keyboard macro that |
ae642a03d4da
(Keyboard Macro Ring): Rename section.
Luc Teirlinck <teirllm@auburn.edu>
parents:
56654
diff
changeset
|
234 @kbd{C-x e} will execute. |
ae642a03d4da
(Keyboard Macro Ring): Rename section.
Luc Teirlinck <teirllm@auburn.edu>
parents:
56654
diff
changeset
|
235 |
52224
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
236 @findex kmacro-view-macro-repeat |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
237 @kindex C-x C-k C-v |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
238 |
58719
939c9f3f6cd6
Several small changes in addition to the following.
Luc Teirlinck <teirllm@auburn.edu>
parents:
57042
diff
changeset
|
239 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
|
240 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
|
241 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
|
242 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
|
243 @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
|
244 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
|
245 |
58719
939c9f3f6cd6
Several small changes in addition to the following.
Luc Teirlinck <teirllm@auburn.edu>
parents:
57042
diff
changeset
|
246 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
|
247 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
|
248 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
|
249 then the current macro once. |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
250 |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
251 @findex kmacro-delete-ring-head |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
252 @kindex C-x C-k C-d |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
253 |
58719
939c9f3f6cd6
Several small changes in addition to the following.
Luc Teirlinck <teirllm@auburn.edu>
parents:
57042
diff
changeset
|
254 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
|
255 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
|
256 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
|
257 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
|
258 |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
259 @findex kmacro-swap-ring |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
260 @kindex C-x C-k C-t |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
261 |
58719
939c9f3f6cd6
Several small changes in addition to the following.
Luc Teirlinck <teirllm@auburn.edu>
parents:
57042
diff
changeset
|
262 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
|
263 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
|
264 the macro ring. |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
265 |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
266 @findex kmacro-call-ring-2nd-repeat |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
267 @kindex C-x C-k C-l |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
268 |
58719
939c9f3f6cd6
Several small changes in addition to the following.
Luc Teirlinck <teirllm@auburn.edu>
parents:
57042
diff
changeset
|
269 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
|
270 executes the previous (rather than the head) element on the macro ring. |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
271 |
58719
939c9f3f6cd6
Several small changes in addition to the following.
Luc Teirlinck <teirllm@auburn.edu>
parents:
57042
diff
changeset
|
272 @vindex kmacro-ring-max |
939c9f3f6cd6
Several small changes in addition to the following.
Luc Teirlinck <teirllm@auburn.edu>
parents:
57042
diff
changeset
|
273 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
|
274 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
|
275 |
52224
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
276 @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
|
277 @section The Keyboard Macro Counter |
52224
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
278 |
58719
939c9f3f6cd6
Several small changes in addition to the following.
Luc Teirlinck <teirllm@auburn.edu>
parents:
57042
diff
changeset
|
279 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
|
280 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
|
281 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
|
282 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
|
283 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
|
284 |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
285 @findex kmacro-insert-counter |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
286 @kindex C-x C-k C-i |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
287 The command @kbd{C-x C-k C-i} (@code{kmacro-insert-counter}) inserts |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
288 the current value of the keyboard macro counter and increments the |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
289 counter by 1. You can use a numeric prefix argument to specify a |
58719
939c9f3f6cd6
Several small changes in addition to the following.
Luc Teirlinck <teirllm@auburn.edu>
parents:
57042
diff
changeset
|
290 different increment. If you just specify a @kbd{C-u} prefix, the last |
52224
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
291 inserted counter value is repeated and the counter is not incremented. |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
292 For example, if you enter the following sequence while defining a macro |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
293 |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
294 @example |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
295 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
|
296 @end example |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
297 |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
298 @noindent |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
299 the text @samp{0112} is inserted in the buffer, and for the first and |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
300 second execution of the macro @samp{3445} and @samp{6778} are |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
301 inserted. |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
302 |
58719
939c9f3f6cd6
Several small changes in addition to the following.
Luc Teirlinck <teirllm@auburn.edu>
parents:
57042
diff
changeset
|
303 This command usually only makes sense while defining a keyboard macro. |
939c9f3f6cd6
Several small changes in addition to the following.
Luc Teirlinck <teirllm@auburn.edu>
parents:
57042
diff
changeset
|
304 But its behavior when no keyboard macro is being defined or executed |
939c9f3f6cd6
Several small changes in addition to the following.
Luc Teirlinck <teirllm@auburn.edu>
parents:
57042
diff
changeset
|
305 is predictable: it inserts and increments the counter of the head of |
939c9f3f6cd6
Several small changes in addition to the following.
Luc Teirlinck <teirllm@auburn.edu>
parents:
57042
diff
changeset
|
306 the keyboard macro ring. |
939c9f3f6cd6
Several small changes in addition to the following.
Luc Teirlinck <teirllm@auburn.edu>
parents:
57042
diff
changeset
|
307 |
52224
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
308 @findex kmacro-set-counter |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
309 @kindex C-x C-k C-c |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
310 The command @kbd{C-x C-k C-c} (@code{kmacro-set-counter}) prompts |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
311 for the initial value of the keyboard macro counter if you use it |
58719
939c9f3f6cd6
Several small changes in addition to the following.
Luc Teirlinck <teirllm@auburn.edu>
parents:
57042
diff
changeset
|
312 before you define a keyboard macro. If you use it before executing a |
939c9f3f6cd6
Several small changes in addition to the following.
Luc Teirlinck <teirllm@auburn.edu>
parents:
57042
diff
changeset
|
313 keyboard macro, it resets that macro's counter. If you use it while |
939c9f3f6cd6
Several small changes in addition to the following.
Luc Teirlinck <teirllm@auburn.edu>
parents:
57042
diff
changeset
|
314 defining a keyboard macro, then the macro counter gets reset to that same |
939c9f3f6cd6
Several small changes in addition to the following.
Luc Teirlinck <teirllm@auburn.edu>
parents:
57042
diff
changeset
|
315 value on each repetition of the macro. Rather than having the command |
939c9f3f6cd6
Several small changes in addition to the following.
Luc Teirlinck <teirllm@auburn.edu>
parents:
57042
diff
changeset
|
316 prompt for a value, you can also specify the value with a numeric |
939c9f3f6cd6
Several small changes in addition to the following.
Luc Teirlinck <teirllm@auburn.edu>
parents:
57042
diff
changeset
|
317 prefix argument. If you just specify a @kbd{C-u} prefix, the counter |
939c9f3f6cd6
Several small changes in addition to the following.
Luc Teirlinck <teirllm@auburn.edu>
parents:
57042
diff
changeset
|
318 is reset to the value it had prior to the current repetition of the |
939c9f3f6cd6
Several small changes in addition to the following.
Luc Teirlinck <teirllm@auburn.edu>
parents:
57042
diff
changeset
|
319 macro (undoing any increments so far in this repetition). If you just |
939c9f3f6cd6
Several small changes in addition to the following.
Luc Teirlinck <teirllm@auburn.edu>
parents:
57042
diff
changeset
|
320 specify a @kbd{C-u} prefix while no macro is being defined or executed, |
939c9f3f6cd6
Several small changes in addition to the following.
Luc Teirlinck <teirllm@auburn.edu>
parents:
57042
diff
changeset
|
321 then the new value of the counter is essentially unpredictable. |
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 @findex kmacro-add-counter |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
324 @kindex C-x C-k C-a |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
325 The command @kbd{C-x C-k C-a} (@code{kmacro-add-counter}) prompts |
58719
939c9f3f6cd6
Several small changes in addition to the following.
Luc Teirlinck <teirllm@auburn.edu>
parents:
57042
diff
changeset
|
326 for a value to add to the macro counter. You can also specify the |
939c9f3f6cd6
Several small changes in addition to the following.
Luc Teirlinck <teirllm@auburn.edu>
parents:
57042
diff
changeset
|
327 value with a numeric prefix argument. If you just specify a @kbd{C-u} |
939c9f3f6cd6
Several small changes in addition to the following.
Luc Teirlinck <teirllm@auburn.edu>
parents:
57042
diff
changeset
|
328 prefix, the counter is reset to the last value inserted by any |
939c9f3f6cd6
Several small changes in addition to the following.
Luc Teirlinck <teirllm@auburn.edu>
parents:
57042
diff
changeset
|
329 keyboard macro. Usually, this will only make sense if that value was |
939c9f3f6cd6
Several small changes in addition to the following.
Luc Teirlinck <teirllm@auburn.edu>
parents:
57042
diff
changeset
|
330 inserted during the current macro definition or repetition. |
939c9f3f6cd6
Several small changes in addition to the following.
Luc Teirlinck <teirllm@auburn.edu>
parents:
57042
diff
changeset
|
331 |
939c9f3f6cd6
Several small changes in addition to the following.
Luc Teirlinck <teirllm@auburn.edu>
parents:
57042
diff
changeset
|
332 This command normally only makes sense while defining a keyboard macro. |
939c9f3f6cd6
Several small changes in addition to the following.
Luc Teirlinck <teirllm@auburn.edu>
parents:
57042
diff
changeset
|
333 But its behavior when no keyboard macro is being defined or executed |
939c9f3f6cd6
Several small changes in addition to the following.
Luc Teirlinck <teirllm@auburn.edu>
parents:
57042
diff
changeset
|
334 is predictable: it affects the counter of the head of the keyboard |
939c9f3f6cd6
Several small changes in addition to the following.
Luc Teirlinck <teirllm@auburn.edu>
parents:
57042
diff
changeset
|
335 macro ring. |
52224
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
336 |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
337 @findex kmacro-set-format |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
338 @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
|
339 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
|
340 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
|
341 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
|
342 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
|
343 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
|
344 @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
|
345 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
|
346 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
|
347 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
|
348 |
939c9f3f6cd6
Several small changes in addition to the following.
Luc Teirlinck <teirllm@auburn.edu>
parents:
57042
diff
changeset
|
349 If you use this command while no keyboard macro is being defined or |
939c9f3f6cd6
Several small changes in addition to the following.
Luc Teirlinck <teirllm@auburn.edu>
parents:
57042
diff
changeset
|
350 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
|
351 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
|
352 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
|
353 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
|
354 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
|
355 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
|
356 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
|
357 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
|
358 subsequent macros. |
939c9f3f6cd6
Several small changes in addition to the following.
Luc Teirlinck <teirllm@auburn.edu>
parents:
57042
diff
changeset
|
359 |
939c9f3f6cd6
Several small changes in addition to the following.
Luc Teirlinck <teirllm@auburn.edu>
parents:
57042
diff
changeset
|
360 The format set by @kbd{C-x C-k C-f} does not affect insertion of |
939c9f3f6cd6
Several small changes in addition to the following.
Luc Teirlinck <teirllm@auburn.edu>
parents:
57042
diff
changeset
|
361 numbers stored in registers. |
52224
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
362 |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
363 @node Keyboard Macro Query |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
364 @section Executing Macros with Variations |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
365 |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
366 @kindex C-x q |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
367 @findex kbd-macro-query |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
368 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
|
369 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
|
370 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
|
371 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
|
372 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
|
373 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
|
374 |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
375 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
|
376 @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
|
377 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
|
378 the @code{query-replace} options are meaningful. |
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 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
|
381 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
|
382 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
|
383 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
|
384 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
|
385 |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
386 @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
|
387 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
|
388 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
|
389 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
|
390 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
|
391 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
|
392 want.@refill |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
393 |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
394 @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
|
395 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
|
396 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
|
397 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
|
398 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
|
399 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
|
400 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
|
401 @xref{Recursive Edit}. |
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 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
|
404 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
|
405 @xref{RegNumbers}. |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
406 |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
407 @node Save Keyboard Macro |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
408 @section Naming and Saving Keyboard Macros |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
409 |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
410 @cindex saving keyboard macros |
57042
b395b3e4c4c7
(Save Keyboard Macro): Replace `name-last-kbd-macro'
Kim F. Storm <storm@cua.dk>
parents:
56858
diff
changeset
|
411 @findex kmacro-name-last-macro |
52224
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
412 @kindex C-x C-k n |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
413 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
|
414 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
|
415 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
|
416 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
|
417 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
|
418 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
|
419 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
|
420 @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
|
421 (@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
|
422 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
|
423 changed. |
52224
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
424 |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
425 @cindex binding keyboard macros |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
426 @findex kmacro-bind-to-key |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
427 @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
|
428 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
|
429 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
|
430 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
|
431 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
|
432 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
|
433 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
|
434 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
|
435 |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
436 To avoid problems caused by overriding existing bindings, the key |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
437 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
|
438 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
|
439 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
|
440 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
|
441 For example, |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
442 |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
443 @example |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
444 C-x C-k b 4 |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
445 @end example |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
446 |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
447 @noindent |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
448 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
|
449 |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
450 @findex insert-kbd-macro |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
451 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
|
452 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
|
453 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
|
454 |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
455 @example |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
456 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
|
457 @end example |
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 @noindent |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
460 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
|
461 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
|
462 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
|
463 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
|
464 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
|
465 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
|
466 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
|
467 |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
468 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
|
469 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
|
470 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
|
471 when you load the file. |
52224
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
472 |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
473 @node Edit Keyboard Macro |
56748
ae642a03d4da
(Keyboard Macro Ring): Rename section.
Luc Teirlinck <teirllm@auburn.edu>
parents:
56654
diff
changeset
|
474 @section Editing a Keyboard Macro |
52224
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
475 |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
476 @findex kmacro-edit-macro |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
477 @kindex C-x C-k C-e |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
478 @kindex C-x C-k RET |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
479 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
|
480 @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
|
481 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
|
482 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
|
483 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
|
484 |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
485 @findex edit-kbd-macro |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
486 @kindex C-x C-k e |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
487 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
|
488 @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
|
489 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
|
490 @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
|
491 |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
492 @findex kmacro-edit-lossage |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
493 @kindex C-x C-k l |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
494 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
|
495 @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
|
496 |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
497 @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
|
498 @section Stepwise Editing a Keyboard Macro |
52224
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
499 |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
500 @findex kmacro-step-edit-macro |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
501 @kindex C-x C-k SPC |
60108
36b2efe4eb14
(Basic Keyboard Macro): Doc F3, F4.
Richard M. Stallman <rms@gnu.org>
parents:
58719
diff
changeset
|
502 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
|
503 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
|
504 (@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
|
505 @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
|
506 macro ring. |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
507 |
60108
36b2efe4eb14
(Basic Keyboard Macro): Doc F3, F4.
Richard M. Stallman <rms@gnu.org>
parents:
58719
diff
changeset
|
508 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
|
509 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
|
510 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
|
511 options. These actions are available: |
52224
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
512 |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
513 @itemize @bullet{} |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
514 @item |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
515 @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
|
516 next command in the keyboard macro. |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
517 @item |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
518 @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
|
519 @item |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
520 @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
|
521 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
|
522 @item |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
523 @kbd{TAB} executes the current command, as well as all similar |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
524 commands immediately following the current command; for example, TAB |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
525 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
|
526 sequence of @code{self-insert-command} commands). |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
527 @item |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
528 @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
|
529 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
|
530 macro replaces the original keyboard macro. |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
531 @item |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
532 @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
|
533 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
|
534 with the edited macro. |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
535 @item |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
536 @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
|
537 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
|
538 @item |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
539 @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
|
540 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
|
541 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
|
542 command. |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
543 @item |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
544 @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
|
545 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
|
546 over the current command. |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
547 @item |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
548 @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
|
549 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
|
550 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
|
551 sequences. |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
552 @item |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
553 @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
|
554 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
|
555 advancing over the inserted key sequence. |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
556 @item |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
557 @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
|
558 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
|
559 @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
|
560 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
|
561 sequences. |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
562 @item |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
563 @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
|
564 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
|
565 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
|
566 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
|
567 original keyboard macro with the edited macro. |
57534ab575bd
New file describing enhanced keyboard macro functionality.
Kim F. Storm <storm@cua.dk>
parents:
diff
changeset
|
568 @end itemize |
52401 | 569 |
570 @ignore | |
571 arch-tag: c1b0dd3b-3159-4c08-928f-52e763953e9c | |
572 @end ignore |