annotate man/xemacs/regs.texi @ 5652:cc6f0266bc36

Avoid #'delq in core Lisp, for the sake of style, a very slightly smaller binary lisp/ChangeLog addition: 2012-05-01 Aidan Kehoe <kehoea@parhasard.net> Avoid #'delq in core code, for the sake of style and a (very slightly) smaller binary. * behavior.el (disable-behavior): * behavior.el (compute-behavior-group-children): * buff-menu.el (buffers-tab-items): * byte-optimize.el (byte-optimize-delay-constants-math): * byte-optimize.el (byte-optimize-logmumble): * byte-optimize.el (byte-decompile-bytecode-1): * byte-optimize.el (byte-optimize-lapcode): * bytecomp.el: * bytecomp.el (byte-compile-arglist-warn): * bytecomp.el (byte-compile-warn-about-unresolved-functions): * bytecomp.el (byte-compile-lambda): * bytecomp.el (byte-compile-out-toplevel): * bytecomp.el (byte-compile-insert): * bytecomp.el (byte-compile-defalias-warn): * cl-macs.el (cl-upcase-arg): * cl-macs.el (cl-transform-lambda): * cl-macs.el (cl-do-proclaim): * cl-macs.el (defstruct): * cl-macs.el (cl-make-type-test): * cl-macs.el (define-compiler-macro): * cl-macs.el (delete-duplicates): * cus-edit.el (widget-face-value-delete): * cus-edit.el (face-history): * easymenu.el (easy-menu-remove): * files.el (files-fetch-hook-value): * files.el (file-expand-wildcards): * font-lock.el (font-lock-update-removed-keyword-alist): * font-lock.el (font-lock-remove-keywords): * frame.el (frame-initialize): * frame.el (frame-notice-user-settings): * frame.el (set-frame-font): * frame.el (delete-other-frames): * frame.el (get-frame-for-buffer-noselect): * gnuserv.el (gnuserv-kill-buffer-function): * gnuserv.el (gnuserv-check-device): * gnuserv.el (gnuserv-kill-client): * gnuserv.el (gnuserv-buffer-done-1): * gtk-font-menu.el (gtk-reset-device-font-menus): * gutter-items.el (buffers-tab-items): * gutter.el (set-gutter-element-visible-p): * info.el (Info-find-file-node): * info.el (Info-history-add): * info.el (Info-build-annotation-completions): * info.el (Info-index): * info.el (Info-reannotate-node): * itimer.el (delete-itimer): * itimer.el (start-itimer): * lib-complete.el (lib-complete:cache-completions): * loadhist.el (unload-feature): * menubar-items.el (build-buffers-menu-internal): * menubar.el (delete-menu-item): * menubar.el (relabel-menu-item): * msw-font-menu.el (mswindows-reset-device-font-menus): * mule/make-coding-system.el (fixed-width-generate-helper): * next-error.el (next-error-find-buffer): * obsolete.el: * obsolete.el (find-non-ascii-charset-string): * obsolete.el (find-non-ascii-charset-region): * occur.el (multi-occur-by-filename-regexp): * occur.el (occur-1): * packages.el (packages-package-hierarchy-directory-names): * packages.el (package-get-key-1): * process.el (setenv): * simple.el (undo): * simple.el (handle-pre-motion-command-current-command-is-motion): * sound.el (load-sound-file): * wid-edit.el (widget-field-value-delete): * wid-edit.el (widget-checklist-match-inline): * wid-edit.el (widget-checklist-match-find): * wid-edit.el (widget-editable-list-delete-at): * wid-edit.el (widget-editable-list-entry-create): * window.el (quit-window): * x-font-menu.el (x-reset-device-font-menus-core): 1. Replace (delq nil (mapcar ....)) with analogous (mapcan ...) forms; this is in non-dumped files, it was done previously in dumped files. 2. Replace (delq FOO (copy-sequence BAR)) with (remove* FOO BAR), where #'eq and #'eql are equivalent 3. Replace (delq FOO BAR) with (delete* FOO BAR), where FOO is not a non-fixnum number. Saves a little space in the dumped file (since the compiler macro adds :test #'eq to the delete* call if it's not clear that FOO is not a non-fixnum number).
author Aidan Kehoe <kehoea@parhasard.net>
date Tue, 01 May 2012 16:17:42 +0100
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