annotate man/xemacs/regs.texi @ 5167:e374ea766cc1

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