Mercurial > hg > xemacs-beta
comparison man/xemacs/regs.texi @ 398:74fd4e045ea6 r21-2-29
Import from CVS: tag r21-2-29
author | cvs |
---|---|
date | Mon, 13 Aug 2007 11:13:30 +0200 |
parents | 376386a54a3c |
children | 697ef44129c6 |
comparison
equal
deleted
inserted
replaced
397:f4aeb21a5bad | 398:74fd4e045ea6 |
---|---|
1 | 1 |
2 @node Registers, Display, Rectangles, Top | 2 @node Registers, Display, Rectangles, Top |
3 @chapter Registers | 3 @chapter Registers |
4 @cindex registers | 4 @cindex registers |
5 | 5 |
6 Emacs @dfn{registers} are places in which you can save text or | 6 XEmacs @dfn{registers} are places in which you can save text or |
7 positions for later use. Text saved in a register can be copied into | 7 positions for later use. Once you save text or a rectangle in a |
8 the buffer once or many times; a position saved in a register is used by | 8 register, you can copy it into the buffer once or many times; a position |
9 moving point to that position. Rectangles can also be copied into and | 9 saved in a register is used by moving point to that position. |
10 out of registers (@pxref{Rectangles}). | 10 Rectangles can also be copied into and out of registers |
11 | 11 (@pxref{Rectangles}). |
12 Each register has a name, which is a single character. A register can | 12 |
13 store either a piece of text, a position, or a rectangle, but only one | 13 @findex view-register |
14 thing at any given time. Whatever you store in a register remains | 14 Each register has a name which is a single character. A register can |
15 there until you store something else in that register. | 15 store a piece of text, a rectangle, a position, a window configuration, |
16 | 16 or a file name, but only one thing at any given time. Whatever you |
17 @menu | 17 store in a register remains there until you store something else in that |
18 * RegPos:: Saving positions in registers. | 18 register. To see what a register @var{r} contains, use @kbd{M-x |
19 * RegText:: Saving text in registers. | 19 view-register}. |
20 * RegRect:: Saving rectangles in registers. | |
21 @end menu | |
22 | 20 |
23 @table @kbd | 21 @table @kbd |
24 @item M-x view-register @key{RET} @var{r} | 22 @item M-x view-register @key{RET} @var{r} |
25 Display a description of what register @var{r} contains. | 23 Display a description of what register @var{r} contains. |
26 @end table | 24 @end table |
27 | 25 |
28 @findex view-register | 26 @findex view-register |
29 @kbd{M-x view-register} reads a register name as an argument and then | 27 @kbd{M-x view-register} reads a register name as an argument and then |
30 displays the contents of the specified register. | 28 displays the contents of the specified register. |
31 | 29 |
30 @menu | |
31 * Position: RegPos. Saving positions in registers. | |
32 * Text: RegText. Saving text in registers. | |
33 * Rectangle: RegRect. Saving rectangles in registers. | |
34 * Configurations: RegConfig. Saving window configurations in registers. | |
35 * Files: RegFiles. File names in registers. | |
36 * Numbers: RegNumbers. Numbers in registers. | |
37 * Bookmarks:: Bookmarks are like registers, but persistent. | |
38 @end menu | |
39 | |
32 @node RegPos, RegText, Registers, Registers | 40 @node RegPos, RegText, Registers, Registers |
33 @section Saving Positions in Registers | 41 @section Saving Positions in Registers |
34 | 42 |
35 Saving a position records a spot in a buffer so you can move | 43 Saving a position records a place in a buffer so that you can move |
36 back there later. Moving to a saved position re-selects the buffer | 44 back there later. Moving to a saved position switches to that buffer |
37 and moves point to the spot. | 45 and moves point to that place in it. |
38 | 46 |
39 @table @kbd | 47 @table @kbd |
40 @item C-x r SPC @var{r} | 48 @item C-x r @key{SPC} @var{r} |
41 Save the location of point in register @var{r} (@code{point-to-register}). | 49 Save position of point in register @var{r} (@code{point-to-register}). |
42 @item C-x r j @var{r} | 50 @item C-x r j @var{r} |
43 Jump to the location saved in register @var{r} (@code{register-to-point}). | 51 Jump to the position saved in register @var{r} (@code{jump-to-register}). |
44 @end table | 52 @end table |
45 | 53 |
46 @kindex C-x r SPC | 54 @kindex C-x r SPC |
47 @findex point-to-register | 55 @findex point-to-register |
48 To save the current location of point in a register, choose a name | 56 To save the current position of point in a register, choose a name |
49 @var{r} and type @kbd{C-x r SPC @var{r}}. The register @var{r} retains | 57 @var{r} and type @kbd{C-x r @key{SPC} @var{r}}. The register @var{r} |
50 the location thus saved until you store something else in that | 58 retains the position thus saved until you store something else in that |
51 register.@refill | 59 register. |
52 | 60 |
53 @kindex C-x r j | 61 @kindex C-x r j |
54 @findex register-to-point | 62 @findex jump-to-register |
55 The command @kbd{C-x r j @var{r}} moves point to the location recorded | 63 The command @kbd{C-x r j @var{r}} moves point to the position recorded |
56 in register @var{r}. The register is not affected; it continues to | 64 in register @var{r}. The register is not affected; it continues to |
57 record the same location. You can jump to the same position using the | 65 record the same location. You can jump to the same position using the |
58 same register as often as you want. | 66 same register as often as you want. |
67 | |
68 If you use @kbd{C-x r j} to go to a saved position, but the buffer it | |
69 was saved from has been killed, @kbd{C-x r j} tries to create the buffer | |
70 again by visiting the same file. Of course, this works only for buffers | |
71 that were visiting files. | |
59 | 72 |
60 @node RegText, RegRect, RegPos, Registers | 73 @node RegText, RegRect, RegPos, Registers |
61 @section Saving Text in Registers | 74 @section Saving Text in Registers |
62 | 75 |
63 When you want to insert a copy of the same piece of text many times, it | 76 When you want to insert a copy of the same piece of text many times, it |
64 can be impractical to use the kill ring, since each subsequent kill moves | 77 can be impractical to use the kill ring, since each subsequent kill moves |
65 the piece of text further down on the ring. It becomes hard to keep | 78 the piece of text further down on the ring. It becomes hard to keep |
66 track of the argument needed to retrieve the same text with @kbd{C-y}. An | 79 track of the argument needed to retrieve the same text with @kbd{C-y}. An |
67 alternative is to store the text in a register with @kbd{C-x r s} | 80 alternative is to store the text in a register with @kbd{C-x r s} |
68 (@code{copy-to-register}) and then retrieve it with @kbd{C-x r g} | 81 (@code{copy-to-register}) and then retrieve it with @kbd{C-x r i} |
69 (@code{insert-register}). | 82 (@code{insert-register}). |
70 | 83 |
71 @table @kbd | 84 @table @kbd |
72 @item C-x r s @var{r} | 85 @item C-x r s @var{r} |
73 Copy region into register @var{r} (@code{copy-to-register}). | 86 Copy region into register @var{r} (@code{copy-to-register}). |
74 @item C-x r g @var{r} | 87 @item C-x r g @var{r} |
88 @itemx C-x r i @var{r} | |
75 Insert text contents of register @var{r} (@code{insert-register}). | 89 Insert text contents of register @var{r} (@code{insert-register}). |
76 @end table | 90 @end table |
77 | 91 |
78 @kindex C-x r s | 92 @kindex C-x r s |
79 @kindex C-x r g | 93 @kindex C-x r g |
94 @kindex C-x r i | |
80 @findex copy-to-register | 95 @findex copy-to-register |
81 @findex insert-register | 96 @findex insert-register |
82 @kbd{C-x r s @var{r}} stores a copy of the text of the region into the | 97 @kbd{C-x r s @var{r}} stores a copy of the text of the region into the |
83 register named @var{r}. Given a numeric argument, @kbd{C-x r s} deletes the | 98 register named @var{r}. Given a numeric argument, @kbd{C-x r s @var{r}} |
84 text from the buffer as well. | 99 deletes the text from the buffer as well. |
85 | 100 |
86 @kbd{C-x r g @var{r}} inserts the text from register @var{r} in the buffer. | 101 @kbd{C-x r i @var{r}} inserts the text from register @var{r} in the buffer. |
87 By default it leaves point before the text and places the mark after it. | 102 By default it leaves point before the text and places the mark after |
88 With a numeric argument, it puts point after the text and the mark | 103 it. With a numeric argument (@kbd{C-u}), it puts point after the text |
89 before it. | 104 and the mark before it. |
90 | 105 |
91 @node RegRect,, RegText, Registers | 106 @node RegRect, RegConfig, RegText, Registers |
92 @section Saving Rectangles in Registers | 107 @section Saving Rectangles in Registers |
93 @cindex rectangle | 108 @cindex rectangle |
94 @findex copy-region-to-rectangle | |
95 | 109 |
96 A register can contain a rectangle instead of lines of text. The rectangle | 110 A register can contain a rectangle instead of lines of text. The rectangle |
97 is represented as a list of strings. @xref{Rectangles}, for basic | 111 is represented as a list of strings. @xref{Rectangles}, for basic |
98 information on rectangles and how to specify rectangles in a buffer. | 112 information on rectangles and how to specify rectangles in a buffer. |
99 | 113 |
100 @table @kbd | 114 @table @kbd |
115 @findex copy-rectangle-to-register | |
116 @kindex C-x r r | |
101 @item C-x r r @var{r} | 117 @item C-x r r @var{r} |
102 Copy the region-rectangle into register @var{r}(@code{copy-rectangle-to-register}). | 118 Copy the region-rectangle into register @var{r} |
103 With a numeric argument, delete it as well. | 119 (@code{copy-rectangle-to-register}). With a numeric argument, delete it |
120 as well. | |
104 @item C-x r g @var{r} | 121 @item C-x r g @var{r} |
122 @itemx C-x r i @var{r} | |
105 Insert the rectangle stored in register @var{r} (if it contains a | 123 Insert the rectangle stored in register @var{r} (if it contains a |
106 rectangle) (@code{insert-register}). | 124 rectangle) (@code{insert-register}). |
107 @end table | 125 @end table |
108 | 126 |
109 The @kbd{C-x r g} command inserts linear text if the register contains | 127 The @kbd{C-x r i @var{r}} command inserts linear text if the register |
128 contains | |
110 that, or inserts a rectangle if the register contains one. | 129 that, or inserts a rectangle if the register contains one. |
130 | |
131 See also the command @code{sort-columns}, which you can think of | |
132 as sorting a rectangle. @xref{Sorting}. | |
133 | |
134 @node RegConfig, RegNumbers, RegRect, Registers | |
135 @section Saving Window Configurations in Registers | |
136 | |
137 @findex window-configuration-to-register | |
138 @findex frame-configuration-to-register | |
139 @kindex C-x r w | |
140 @c @kindex C-x r f | |
141 You can save the window configuration of the selected frame in a | |
142 register, or even the configuration of all windows in all frames, and | |
143 restore the configuration later. | |
144 | |
145 @table @kbd | |
146 @item C-x r w @var{r} | |
147 Save the state of the selected frame's windows in register @var{r} | |
148 (@code{window-configuration-to-register}). | |
149 @c @item C-x r f @var{r} | |
150 @item M-x frame-configuration-to-register @key{RET} @var{r} | |
151 Save the state of all frames, including all their windows, in register | |
152 @var{r} (@code{frame-configuration-to-register}). | |
153 @end table | |
154 | |
155 Use @kbd{C-x r j @var{r}} to restore a window or frame configuration. | |
156 This is the same command used to restore a cursor position. When you | |
157 restore a frame configuration, any existing frames not included in the | |
158 configuration become invisible. If you wish to delete these frames | |
159 instead, use @kbd{C-u C-x r j @var{r}}. | |
160 | |
161 @node RegNumbers, RegFiles, RegConfig, Registers | |
162 @section Keeping Numbers in Registers | |
163 | |
164 There are commands to store a number in a register, to insert | |
165 the number in the buffer in decimal, and to increment it. These commands | |
166 can be useful in keyboard macros (@pxref{Keyboard Macros}). | |
167 | |
168 @table @kbd | |
169 @item C-u @var{number} C-x r n @var{reg} | |
170 @kindex C-x r n | |
171 @findex number-to-register | |
172 Store @var{number} into register @var{reg} (@code{number-to-register}). | |
173 @item C-u @var{number} C-x r + @var{reg} | |
174 @kindex C-x r + | |
175 @findex increment-register | |
176 Increment the number in register @var{reg} by @var{number} | |
177 (@code{increment-register}). | |
178 @item C-x r g @var{reg} | |
179 Insert the number from register @var{reg} into the buffer. | |
180 @end table | |
181 | |
182 @kbd{C-x r g} is the same command used to insert any other | |
183 sort of register contents into the buffer. | |
184 | |
185 @node RegFiles, Bookmarks, RegNumbers, Registers | |
186 @section Keeping File Names in Registers | |
187 | |
188 If you visit certain file names frequently, you can visit them more | |
189 conveniently if you put their names in registers. Here's the Lisp code | |
190 used to put a file name in a register: | |
191 | |
192 @smallexample | |
193 (set-register ?@var{r} '(file . @var{name})) | |
194 @end smallexample | |
195 | |
196 @need 3000 | |
197 @noindent | |
198 For example, | |
199 | |
200 @smallexample | |
201 (set-register ?z '(file . "/usr/src/xemacs/src/ChangeLog")) | |
202 @end smallexample | |
203 | |
204 @noindent | |
205 puts the file name shown in register @samp{z}. | |
206 | |
207 To visit the file whose name is in register @var{r}, type @kbd{C-x r j | |
208 @var{r}}. (This is the same command used to jump to a position or | |
209 restore a frame configuration.) | |
210 | |
211 @node Bookmarks, , RegFiles, Registers | |
212 @section Bookmarks | |
213 @cindex bookmarks | |
214 | |
215 @dfn{Bookmarks} are somewhat like registers in that they record | |
216 positions you can jump to. Unlike registers, they have long names, and | |
217 they persist automatically from one Emacs session to the next. The | |
218 prototypical use of bookmarks is to record ``where you were reading'' in | |
219 various files. | |
220 | |
221 Note: bookmark.el is distributed in edit-utils package. You need to | |
222 install that to use bookmark facility (@pxref{Packages}). | |
223 | |
224 @table @kbd | |
225 @item C-x r m @key{RET} | |
226 Set the bookmark for the visited file, at point. | |
227 | |
228 @item C-x r m @var{bookmark} @key{RET} | |
229 @findex bookmark-set | |
230 Set the bookmark named @var{bookmark} at point (@code{bookmark-set}). | |
231 | |
232 @item C-x r b @var{bookmark} @key{RET} | |
233 @findex bookmark-jump | |
234 Jump to the bookmark named @var{bookmark} (@code{bookmark-jump}). | |
235 | |
236 @item C-x r l | |
237 @findex list-bookmarks | |
238 List all bookmarks (@code{list-bookmarks}). | |
239 | |
240 @item M-x bookmark-save | |
241 @findex bookmark-save | |
242 Save all the current bookmark values in the default bookmark file. | |
243 @end table | |
244 | |
245 @kindex C-x r m | |
246 @findex bookmark-set | |
247 @kindex C-x r b | |
248 @findex bookmark-jump | |
249 The prototypical use for bookmarks is to record one current position | |
250 in each of several files. So the command @kbd{C-x r m}, which sets a | |
251 bookmark, uses the visited file name as the default for the bookmark | |
252 name. If you name each bookmark after the file it points to, then you | |
253 can conveniently revisit any of those files with @kbd{C-x r b}, and move | |
254 to the position of the bookmark at the same time. | |
255 | |
256 @kindex C-x r l | |
257 To display a list of all your bookmarks in a separate buffer, type | |
258 @kbd{C-x r l} (@code{list-bookmarks}). If you switch to that buffer, | |
259 you can use it to edit your bookmark definitions or annotate the | |
260 bookmarks. Type @kbd{C-h m} in that buffer for more information about | |
261 its special editing commands. | |
262 | |
263 When you kill XEmacs, XEmacs offers to save your bookmark values in | |
264 your default bookmark file, @file{~/.emacs.bmk}, if you have changed any | |
265 bookmark values. You can also save the bookmarks at any time with the | |
266 @kbd{M-x bookmark-save} command. The bookmark commands load your | |
267 default bookmark file automatically. This saving and loading is how | |
268 bookmarks persist from one XEmacs session to the next. | |
269 | |
270 @vindex bookmark-save-flag | |
271 If you set the variable @code{bookmark-save-flag} to 1, then each | |
272 command that sets a bookmark will also save your bookmarks; this way, | |
273 you don't lose any bookmark values even if XEmacs crashes. (The value, | |
274 if a number, says how many bookmark modifications should go by between | |
275 saving.) | |
276 | |
277 @vindex bookmark-search-size | |
278 Bookmark position values are saved with surrounding context, so that | |
279 @code{bookmark-jump} can find the proper position even if the file is | |
280 modified slightly. The variable @code{bookmark-search-size} says how | |
281 many characters of context to record, on each side of the bookmark's | |
282 position. | |
283 | |
284 Here are some additional commands for working with bookmarks: | |
285 | |
286 @table @kbd | |
287 @item M-x bookmark-load @key{RET} @var{filename} @key{RET} | |
288 @findex bookmark-load | |
289 Load a file named @var{filename} that contains a list of bookmark | |
290 values. You can use this command, as well as @code{bookmark-write}, to | |
291 work with other files of bookmark values in addition to your default | |
292 bookmark file. | |
293 | |
294 @item M-x bookmark-write @key{RET} @var{filename} @key{RET} | |
295 @findex bookmark-write | |
296 Save all the current bookmark values in the file @var{filename}. | |
297 | |
298 @item M-x bookmark-delete @key{RET} @var{bookmark} @key{RET} | |
299 @findex bookmark-delete | |
300 Delete the bookmark named @var{bookmark}. | |
301 | |
302 @item M-x bookmark-insert-location @key{RET} @var{bookmark} @key{RET} | |
303 @findex bookmark-insert-location | |
304 Insert in the buffer the name of the file that bookmark @var{bookmark} | |
305 points to. | |
306 | |
307 @item M-x bookmark-insert @key{RET} @var{bookmark} @key{RET} | |
308 @findex bookmark-insert | |
309 Insert in the buffer the @emph{contents} of the file that bookmark | |
310 @var{bookmark} points to. | |
311 @end table |