0
|
1 @comment node-name, next, previous, up
|
|
2 @node Select and Move, Search and Replace, Other Customizations, Top
|
|
3 @chapter Selecting and Moving Text
|
|
4 @cindex region
|
|
5 @cindex mark
|
|
6
|
|
7 Many Emacs commands operate on an arbitrary contiguous
|
|
8 part of the current buffer. You can select some part of the buffer and
|
|
9 edit only that part of the buffer. This selected buffer is called a
|
|
10 @dfn{region}. You can select text in two ways:
|
|
11
|
|
12 @itemize @bullet
|
|
13 @item
|
|
14 You use special keys to select text by defining a region between the
|
|
15 cursor and @dfn{the mark} (which you set).
|
|
16 @item
|
|
17 If you are running XEmacs under X, you can also select text
|
|
18 with the mouse.
|
|
19 @end itemize
|
|
20
|
|
21 @comment node-name, next, previous, up
|
|
22 @menu
|
|
23 * Selecting Text:: Select a region of text by setting the Mark
|
|
24 * Mouse:: Selecting Text with Mouse
|
|
25 * Region Operation:: Various ways to operate on a selected text
|
|
26 * Moving Text:: Moving Text
|
|
27 * Accumulating text:: Accumulating Text from several buffers
|
|
28 @end menu
|
|
29
|
|
30 @node Selecting Text, Mouse, Select and Move, Select and Move
|
|
31 @section Setting the Mark
|
|
32 @kindex C-SPC
|
|
33 @kindex C-x C-x
|
|
34 @kindex C-<
|
|
35 @kindex C->
|
|
36 @findex set-mark-command
|
|
37 @findex mark-beginning-of-buffer
|
|
38 @findex mark-end-of-buffer
|
|
39 @findex exchange-point-and-mark
|
|
40 To define a region you need to set @dfn{the mark} at one end of it and
|
|
41 move the cursor to the other end. Once you set the mark, it remains
|
|
42 there until you set it again to some other place. Each buffer has its
|
|
43 own @dfn{mark ring} (a place where Emacs remembers 16 previous
|
|
44 locations of the mark). To set @dfn{the mark}, you can use the
|
|
45 following commands:
|
|
46
|
|
47 @table @kbd
|
|
48 @item C-@key{SPC}
|
|
49 This command will set @dfn{the mark} at the position of your cursor
|
|
50 (@code{set-mark-command}). You can move your cursor around and @dfn{the
|
|
51 mark} will stay there.
|
|
52 @item C-x C-x
|
|
53 Interchange mark and point (@code{exchange-point-and-mark}). Since Emacs
|
|
54 will have only one cursor, after you move the cursor it will be unable
|
|
55 to show you where you set the @dfn{the mark}. In order to see @dfn{the
|
|
56 mark} you can type the command @kbd{C-x C-x} which will put your cursor
|
|
57 on the position of your mark and your mark on the position of your
|
|
58 cursor. Use the command again to reset the positions of your cursor and
|
|
59 mark.
|
|
60 @item C-<
|
|
61 This command will push the mark at the beginning of the buffer without
|
|
62 changing the position of your cursor.
|
|
63 @item C->
|
|
64 This command will push the mark at the end of the buffer without
|
|
65 changing the position of your cursor.
|
|
66 @end table
|
|
67 @noindent
|
|
68 You can also give arguments to @kbd{C-<} or @kbd{C->}. @xref{The Mark
|
|
69 and the Region,,,,XEmacs User's Manual}, for more information.
|
|
70
|
|
71 @comment node-name, next, previous, up
|
|
72 @node Mouse, Region Operation, Selecting Text, Select and Move
|
|
73 @section Selecting Text with Mouse
|
|
74 @cindex mouse selection
|
|
75 @cindex clipboard selection
|
|
76 @cindex primary selection
|
|
77 @cindex cursor shapes
|
|
78 If you are using XEmacs under X, you can use the mouse to select
|
|
79 text. The selected text will always be highlighted, so just by looking
|
|
80 at the text you know what you have selected so far. To select a word
|
|
81 just double-click with the left-mouse-button on the word. To select a
|
|
82 whole line triple-click anywhere on the line with the
|
|
83 left-mouse-button. You can also use the @b{Copy} item from the @b{Edit}
|
|
84 menu on the menu-bar to select text. This kind of selection is called
|
|
85 @b{Clipboard} selection, @xref{X Clipboard Selection,,,,XEmacs User's
|
|
86 Manual}, for more information. To select an arbitrary region, follow
|
|
87 these steps:
|
|
88
|
|
89 @enumerate
|
|
90 @item
|
|
91 Move the mouse cursor over the character at the beginning of the region of
|
|
92 text you want to select.
|
|
93 @item
|
|
94 Press and hold the left mouse button.
|
|
95 @item
|
|
96 While holding the left mouse button down, drag the cursor to the
|
|
97 character at the end of the region of text you want to select.
|
|
98 @item
|
|
99 Release the left mouse button.
|
|
100 @end enumerate
|
|
101 The selected region of text is highlighted.
|
|
102
|
|
103 @xref{Selecting Text with the Mouse,,,,XEmacs User's Manual}, for
|
|
104 more information regarding the Mouse and additional mouse operations.
|
|
105
|
|
106 @comment node-name, next, previous, up
|
|
107 @node Region Operation, Moving Text, Mouse, Select and Move
|
|
108 @section Operating on the Region
|
|
109 Once you have selected a region you can do a lot of things to the text
|
|
110 in the region:
|
|
111 @kindex C-w
|
|
112 @kindex C-x C-u
|
|
113 @kindex C-x C-l
|
|
114 @kindex C-SPC
|
|
115 @kindex C-x TAB
|
|
116 @kindex C-M-\
|
|
117 @findex print-region
|
|
118 @itemize @bullet
|
|
119 @item
|
|
120 Kill the text with @kbd{C-w}. For example if you want to kill a
|
|
121 paragraph, position the cursor to the beginning of the paragraph and
|
|
122 type @kbd{C-SPC}. Then go to the end of the paragraph and type
|
|
123 @kbd{C-w}. The entire paragraph will be deleted. You can also select the
|
|
124 text with a mouse and type @kbd{C-w} to kill the entire
|
|
125 region. @xref{Killing,,,,XEmacs User's Manual}, for more information.
|
|
126
|
|
127 @item
|
|
128 Save the text in a buffer or a file (@pxref{Accumulating Text,,,,XEmacs
|
|
129 Manual}).
|
|
130 @item
|
|
131 You can convert the case of the text with @kbd{C-x C-l} or @kbd{C-x C-u}
|
|
132 If you type @kbd{C-x C-u} the selected text will become all
|
|
133 upper-case. If you type @kbd{C-x C-l} the selected text will become all
|
|
134 lower-case.
|
|
135 @item
|
|
136 Print hardcopy with @kbd{M-x print-region}. @xref{Hardcopy,,,,XEmacs
|
|
137 Manual}, for more information. This command will print a hardcopy of only
|
|
138 the selected text.
|
|
139 @item
|
|
140 Indent it with @kbd{C-x @key{TAB}} or @kbd{C-M-\}
|
|
141 @xref{Indentation,,,,XEmacs User's Manual}, for more information.
|
|
142 @end itemize
|
|
143
|
|
144
|
|
145 @comment node-name, next, previous, up
|
|
146 @node Moving Text, Accumulating text, Region Operation, Select and Move
|
|
147 @section Moving Text
|
|
148 @cindex yanking
|
|
149 @cindex pasting
|
|
150 @findex yank
|
|
151 @cindex killing
|
|
152 @cindex kill ring
|
|
153 @cindex moving text
|
|
154 @kindex C-y
|
|
155 The most common way to move or copy text in Emacs is through
|
|
156 @dfn{killing} or @samp{cutting} it and then @dfn{yanking} or
|
|
157 @samp{pasting} it. You can also use the @b{Cut} or @b{Copy} option from
|
|
158 the @b{Edit} menu for killing and copying respectively. @xref{Edit menu}
|
|
159 for reviewing the commands for killing text. All the killed text
|
|
160 in Emacs is recorded in the @dfn{kill ring}. Since there is only one
|
|
161 kill ring in Emacs, you can kill text in one buffer and yank it in
|
|
162 another buffer. To @samp{paste} or
|
|
163 @samp{yank} the killed text you can use the following commands:
|
|
164 @table @kbd
|
|
165 @item C-y
|
|
166 This command will yank or paste the last killed text (@code{yank}).
|
|
167 @item M-w
|
|
168 Save region as last killed text without actually killing it
|
|
169 (@code{copy-region-as-kill}). You can use this command to copy a
|
|
170 selected region and then yank (or paste) it without actually removing it
|
|
171 from the buffer.
|
|
172 @item C-M-w
|
|
173 Append next kill to last batch of killed text
|
|
174 (@code{append-next-kill}). This command will append whatever you killed
|
|
175 last to what you kill now. Then later you will be able to yank the
|
|
176 entire appended text from the @dfn{kill ring}.
|
|
177 @end table
|
|
178
|
|
179 @comment node-name, next, previous, up
|
|
180 @node Accumulating text, , Moving Text, Select and Move
|
|
181 @section Accumulating Text
|
|
182 @findex append-to-buffer
|
|
183 @findex prepend-to-buffer
|
|
184 @findex copy-to-buffer
|
|
185 @findex append-to-file
|
|
186 @cindex copying text
|
|
187 @cindex accumulating text
|
|
188 @cindex rectangle commands
|
|
189 @cindex registers
|
|
190 @cindex temporary storage
|
|
191
|
|
192 The following commands can be used for accumulating text from
|
|
193 different buffers into one place or for copying one region of text into
|
|
194 many buffers:
|
|
195
|
|
196 @table @kbd
|
|
197 @item M-x append-to-buffer
|
|
198 Append region to contents of specified buffer
|
|
199 (@code{append-to-buffer}). After you type in this command and press
|
|
200 @key{RET}, Emacs will prompt you for a buffer name. You will see a
|
|
201 message in the echo area:
|
|
202 @example
|
|
203 Append to buffer: (default <buffer name>)
|
|
204 @end example
|
|
205 @noindent
|
|
206 After you type in a buffer name, a copy of the region will be inserted
|
|
207 at the location of the cursor into that buffer. If there is no buffer
|
|
208 with the name given by you, Emacs will create a new buffer with that
|
|
209 name. By default the cursor's position in the <buffer name> is at the end.
|
|
210 @item M-x prepend-to-buffer
|
|
211 Prepend region to contents of specified buffer. This command is similar
|
|
212 to the above command except that the cursor in the buffer (by default)
|
|
213 is at the beginning rather than at the end.
|
|
214 @item M-x copy-to-buffer
|
|
215 Copy region into specified buffer, deleting that buffer's old
|
|
216 contents. This command will also prompt you for a buffer name.
|
|
217 @item M-x insert-buffer
|
|
218 Insert contents of specified buffer into current buffer at point. This
|
|
219 command will prompt you for a buffername which you want to be copied
|
|
220 into the current buffer at the location of the cursor.
|
|
221 @item M-x append-to-file
|
|
222 This command will prompt you for a filename and append the region to
|
|
223 the end of the contents of the specified file.
|
|
224 @end table
|
|
225
|
|
226 @noindent
|
|
227 @xref{Accumulating Text,,,,XEmacs User's Manual}, for more
|
|
228 information regarding this topic.
|
|
229
|
|
230 You can also use @dfn{rectangle commands} for operating on rectangular
|
|
231 areas of text. @xref{Rectangles,,,,XEmacs User's Manual}, for more
|
|
232 information regarding rectangle commands.
|
|
233
|
|
234 Emacs also provides @dfn{registers} which serve as temporary storage for
|
|
235 text or positions. Each register has a one character name and they can
|
|
236 store @dfn{regions}, a @dfn{rectangle}, or a @dfn{mark} i.e. a cursor
|
|
237 position. Whatever you store in register stays there until you store
|
|
238 something else in that register. To find out about commands which
|
|
239 manipulate registers @xref{Registers,,,,XEmacs User's Manual}.
|
|
240
|
|
241
|
|
242
|
|
243
|
|
244
|
|
245
|
|
246
|
|
247
|
|
248
|
|
249
|
|
250
|
|
251
|
|
252
|
|
253
|
|
254
|
|
255
|
|
256
|
|
257
|