Mercurial > emacs
annotate man/killing.texi @ 42829:07bd6e693cb6
(easy-mmode-defmap): Enable "Up Stack", "Down Stack", and
"Finish Function" menu map entries for jdb mode.
(gud-jdb-use-classpath): New customization variable.
(gud-jdb-command-name): Add customization.
(gud-jdb-classpath, gud-marker-acc-max-length): New variables.
(gud-jdb-classpath-string): New variable.
(gud-jdb-source-files, gud-jdb-class-source-alist): Add doc strings.
(gud-jdb-build-source-files-list): Likewise.
(gud-jdb-massage-args): Record any command argument classpath
string in `gud-jdb-classpath-string'.
(gud-jdb-lowest-stack-level): New function, finds bottom of current
java call stack in jdb output.
(gud-jdb-find-source-using-classpath, gud-jdb-find-source)
(gud-jdb-parse-classpath-string): New functions.
(gud-jdb-marker-filter): Search/detect classpath information in
jdb's output. marker regexp updated to match oldjdb and jdb output
formats. Expand search for source files to include new/old methods
using new functions above. Do not allow `gud-marker-acc' to grow
without bound.
(jdb): Set classpath information (if available) as jdb is started.
Change `gud-break' and `gud-remove'
to use new %c ("class") escape in format strings. Add
`gud-finish', `gud-up', `gud-down' command string functions, and
add them to the local menu map. Update `comint-prompt-regexp' for
jdb and oldjdb. If attaching to an already running java VM and
configured to use classpath, send command to query for classpath,
else use previous method for finding and parsing java
sources. Set `gud-jdb-find-source' function accordingly.
(gud-mode): Doc fix.
(gud-format-command): Add support for new %c ("class") escape.
(gud-find-class): New function in support of %c escape.
author | Richard M. Stallman <rms@gnu.org> |
---|---|
date | Fri, 18 Jan 2002 18:57:20 +0000 |
parents | a093cd4ed690 |
children | 7af49c69e77b |
rev | line source |
---|---|
25829 | 1 @c This is part of the Emacs manual. |
36162
f657bb5a6cf5
Rewrite kill-read-only-ok, Delete Selection mode, replace-rectangle.
Richard M. Stallman <rms@gnu.org>
parents:
35918
diff
changeset
|
2 @c Copyright (C) 1985,86,87,93,94,95,97,00,2001 Free Software Foundation, Inc. |
25829 | 3 @c See file emacs.texi for copying conditions. |
4 @iftex | |
5 @chapter Killing and Moving Text | |
6 | |
7 @dfn{Killing} means erasing text and copying it into the @dfn{kill | |
8 ring}, from which it can be retrieved by @dfn{yanking} it. Some systems | |
9 use the terms ``cutting'' and ``pasting'' for these operations. | |
10 | |
38745 | 11 The most common way of moving or copying text within Emacs is to kill it |
25829 | 12 and later yank it elsewhere in one or more places. This is very safe |
13 because Emacs remembers several recent kills, not just the last one. It | |
14 is versatile, because the many commands for killing syntactic units can | |
15 also be used for moving those units. But there are other ways of | |
16 copying text for special purposes. | |
17 | |
18 Emacs has only one kill ring for all buffers, so you can kill text in | |
19 one buffer and yank it in another buffer. | |
20 | |
21 @end iftex | |
22 | |
23 @node Killing, Yanking, Mark, Top | |
24 @section Deletion and Killing | |
25 | |
26 @cindex killing text | |
27 @cindex cutting text | |
28 @cindex deletion | |
29 Most commands which erase text from the buffer save it in the kill | |
30 ring so that you can move or copy it to other parts of the buffer. | |
31 These commands are known as @dfn{kill} commands. The rest of the | |
32 commands that erase text do not save it in the kill ring; they are known | |
33 as @dfn{delete} commands. (This distinction is made only for erasure of | |
34 text in the buffer.) If you do a kill or delete command by mistake, you | |
35 can use the @kbd{C-x u} (@code{undo}) command to undo it | |
36 (@pxref{Undo}). | |
37 | |
30771
e9948dd313fa
(Killing): Document kill-read-only-ok.
Eli Zaretskii <eliz@gnu.org>
parents:
27749
diff
changeset
|
38 @vindex kill-read-only-ok |
e9948dd313fa
(Killing): Document kill-read-only-ok.
Eli Zaretskii <eliz@gnu.org>
parents:
27749
diff
changeset
|
39 @cindex read-only text, killing |
36162
f657bb5a6cf5
Rewrite kill-read-only-ok, Delete Selection mode, replace-rectangle.
Richard M. Stallman <rms@gnu.org>
parents:
35918
diff
changeset
|
40 You cannot kill read-only text, since such text does not allow any |
f657bb5a6cf5
Rewrite kill-read-only-ok, Delete Selection mode, replace-rectangle.
Richard M. Stallman <rms@gnu.org>
parents:
35918
diff
changeset
|
41 kind of modification. But some users like to use the kill commands to |
f657bb5a6cf5
Rewrite kill-read-only-ok, Delete Selection mode, replace-rectangle.
Richard M. Stallman <rms@gnu.org>
parents:
35918
diff
changeset
|
42 copy read-only text into the kill ring, without actually changing it. |
f657bb5a6cf5
Rewrite kill-read-only-ok, Delete Selection mode, replace-rectangle.
Richard M. Stallman <rms@gnu.org>
parents:
35918
diff
changeset
|
43 If you set the variable @code{kill-read-only-ok} to a non-@code{nil} |
f657bb5a6cf5
Rewrite kill-read-only-ok, Delete Selection mode, replace-rectangle.
Richard M. Stallman <rms@gnu.org>
parents:
35918
diff
changeset
|
44 value, the kill commands work specially in a read-only buffer: they |
f657bb5a6cf5
Rewrite kill-read-only-ok, Delete Selection mode, replace-rectangle.
Richard M. Stallman <rms@gnu.org>
parents:
35918
diff
changeset
|
45 move over text, and copy it to the kill ring, without actually |
f657bb5a6cf5
Rewrite kill-read-only-ok, Delete Selection mode, replace-rectangle.
Richard M. Stallman <rms@gnu.org>
parents:
35918
diff
changeset
|
46 deleting it from the buffer. When this happens, a message in the echo |
f657bb5a6cf5
Rewrite kill-read-only-ok, Delete Selection mode, replace-rectangle.
Richard M. Stallman <rms@gnu.org>
parents:
35918
diff
changeset
|
47 area tells you what is happening. |
35918
89bf4e8936b6
(Killing): Document that kill commands in a read-only buffer do
Eli Zaretskii <eliz@gnu.org>
parents:
33805
diff
changeset
|
48 |
25829 | 49 The delete commands include @kbd{C-d} (@code{delete-char}) and |
38461
23f63206a867
Proofreading fixes from Chris Green <chris_e_green@yahoo.com>.
Eli Zaretskii <eliz@gnu.org>
parents:
38415
diff
changeset
|
50 @key{DEL} (@code{delete-backward-char}), which delete only one |
23f63206a867
Proofreading fixes from Chris Green <chris_e_green@yahoo.com>.
Eli Zaretskii <eliz@gnu.org>
parents:
38415
diff
changeset
|
51 character at a time, and those commands that delete only spaces or |
23f63206a867
Proofreading fixes from Chris Green <chris_e_green@yahoo.com>.
Eli Zaretskii <eliz@gnu.org>
parents:
38415
diff
changeset
|
52 newlines. Commands that can destroy significant amounts of nontrivial |
23f63206a867
Proofreading fixes from Chris Green <chris_e_green@yahoo.com>.
Eli Zaretskii <eliz@gnu.org>
parents:
38415
diff
changeset
|
53 data generally do a kill operation instead. The commands' names and |
23f63206a867
Proofreading fixes from Chris Green <chris_e_green@yahoo.com>.
Eli Zaretskii <eliz@gnu.org>
parents:
38415
diff
changeset
|
54 individual descriptions use the words @samp{kill} and @samp{delete} to |
23f63206a867
Proofreading fixes from Chris Green <chris_e_green@yahoo.com>.
Eli Zaretskii <eliz@gnu.org>
parents:
38415
diff
changeset
|
55 say which kind of operation they perform. |
25829 | 56 |
30865 | 57 @cindex Delete Selection mode |
58 @cindex mode, Delete Selection | |
59 @findex delete-selection-mode | |
36162
f657bb5a6cf5
Rewrite kill-read-only-ok, Delete Selection mode, replace-rectangle.
Richard M. Stallman <rms@gnu.org>
parents:
35918
diff
changeset
|
60 Many window systems follow the convention that insertion while text |
f657bb5a6cf5
Rewrite kill-read-only-ok, Delete Selection mode, replace-rectangle.
Richard M. Stallman <rms@gnu.org>
parents:
35918
diff
changeset
|
61 is selected deletes the selected text. You can make Emacs behave this |
f657bb5a6cf5
Rewrite kill-read-only-ok, Delete Selection mode, replace-rectangle.
Richard M. Stallman <rms@gnu.org>
parents:
35918
diff
changeset
|
62 way by enabling Delete Selection mode, with @kbd{M-x |
f657bb5a6cf5
Rewrite kill-read-only-ok, Delete Selection mode, replace-rectangle.
Richard M. Stallman <rms@gnu.org>
parents:
35918
diff
changeset
|
63 delete-selection-mode}, or using Custom. Another effect of this mode |
f657bb5a6cf5
Rewrite kill-read-only-ok, Delete Selection mode, replace-rectangle.
Richard M. Stallman <rms@gnu.org>
parents:
35918
diff
changeset
|
64 is that @key{DEL}, @kbd{C-d} and some other keys, when a selection |
f657bb5a6cf5
Rewrite kill-read-only-ok, Delete Selection mode, replace-rectangle.
Richard M. Stallman <rms@gnu.org>
parents:
35918
diff
changeset
|
65 exists, will kill the whole selection. It also enables Transient Mark |
f657bb5a6cf5
Rewrite kill-read-only-ok, Delete Selection mode, replace-rectangle.
Richard M. Stallman <rms@gnu.org>
parents:
35918
diff
changeset
|
66 mode (@pxref{Transient Mark}). |
30865 | 67 |
25829 | 68 @menu |
69 * Deletion:: Commands for deleting small amounts of text and | |
70 blank areas. | |
71 * Killing by Lines:: How to kill entire lines of text at one time. | |
72 * Other Kill Commands:: Commands to kill large regions of text and | |
73 syntactic units such as words and sentences. | |
74 @end menu | |
75 | |
37486
d7bf0f33e402
Add @need before Deletion node.
Richard M. Stallman <rms@gnu.org>
parents:
37447
diff
changeset
|
76 @need 1500 |
25829 | 77 @node Deletion |
78 @subsection Deletion | |
79 @findex delete-backward-char | |
80 @findex delete-char | |
81 | |
37887
1ebd03c6b468
Add some intro text in node Deletion.
Richard M. Stallman <rms@gnu.org>
parents:
37585
diff
changeset
|
82 Deletion means erasing text and not saving it in the kill ring. For |
1ebd03c6b468
Add some intro text in node Deletion.
Richard M. Stallman <rms@gnu.org>
parents:
37585
diff
changeset
|
83 the most part, the Emacs commands that delete text are those that |
1ebd03c6b468
Add some intro text in node Deletion.
Richard M. Stallman <rms@gnu.org>
parents:
37585
diff
changeset
|
84 erase just one character or only whitespace. |
1ebd03c6b468
Add some intro text in node Deletion.
Richard M. Stallman <rms@gnu.org>
parents:
37585
diff
changeset
|
85 |
25829 | 86 @table @kbd |
87 @item C-d | |
36657
0ee33338bb24
(Deletion): Mention the Delete vs Backspace keys. Document
Eli Zaretskii <eliz@gnu.org>
parents:
36162
diff
changeset
|
88 @itemx @key{Delete} |
0ee33338bb24
(Deletion): Mention the Delete vs Backspace keys. Document
Eli Zaretskii <eliz@gnu.org>
parents:
36162
diff
changeset
|
89 Delete next character (@code{delete-char}). If your keyboard has a |
0ee33338bb24
(Deletion): Mention the Delete vs Backspace keys. Document
Eli Zaretskii <eliz@gnu.org>
parents:
36162
diff
changeset
|
90 @key{Delete} function key (usually located in the edit keypad), Emacs |
0ee33338bb24
(Deletion): Mention the Delete vs Backspace keys. Document
Eli Zaretskii <eliz@gnu.org>
parents:
36162
diff
changeset
|
91 binds it to @code{delete-char} as well. |
25829 | 92 @item @key{DEL} |
36657
0ee33338bb24
(Deletion): Mention the Delete vs Backspace keys. Document
Eli Zaretskii <eliz@gnu.org>
parents:
36162
diff
changeset
|
93 @itemx @key{BS} |
0ee33338bb24
(Deletion): Mention the Delete vs Backspace keys. Document
Eli Zaretskii <eliz@gnu.org>
parents:
36162
diff
changeset
|
94 Delete previous character (@code{delete-backward-char}). Some keyboards |
37486
d7bf0f33e402
Add @need before Deletion node.
Richard M. Stallman <rms@gnu.org>
parents:
37447
diff
changeset
|
95 refer to this key as a ``backspace key'' and label it with a left arrow. |
25829 | 96 @item M-\ |
97 Delete spaces and tabs around point (@code{delete-horizontal-space}). | |
98 @item M-@key{SPC} | |
99 Delete spaces and tabs around point, leaving one space | |
100 (@code{just-one-space}). | |
101 @item C-x C-o | |
102 Delete blank lines around the current line (@code{delete-blank-lines}). | |
103 @item M-^ | |
104 Join two lines by deleting the intervening newline, along with any | |
105 indentation following it (@code{delete-indentation}). | |
106 @end table | |
107 | |
36725
640fb21a2098
Clarify the text for BACKSPACE vs DELETE.
Richard M. Stallman <rms@gnu.org>
parents:
36720
diff
changeset
|
108 @kindex DEL |
640fb21a2098
Clarify the text for BACKSPACE vs DELETE.
Richard M. Stallman <rms@gnu.org>
parents:
36720
diff
changeset
|
109 @kindex C-d |
25829 | 110 The most basic delete commands are @kbd{C-d} (@code{delete-char}) and |
111 @key{DEL} (@code{delete-backward-char}). @kbd{C-d} deletes the | |
112 character after point, the one the cursor is ``on top of.'' This | |
113 doesn't move point. @key{DEL} deletes the character before the cursor, | |
114 and moves point back. You can delete newlines like any other characters | |
115 in the buffer; deleting a newline joins two lines. Actually, @kbd{C-d} | |
116 and @key{DEL} aren't always delete commands; when given arguments, they | |
117 kill instead, since they can erase more than one character this way. | |
118 | |
36725
640fb21a2098
Clarify the text for BACKSPACE vs DELETE.
Richard M. Stallman <rms@gnu.org>
parents:
36720
diff
changeset
|
119 @kindex BACKSPACE |
640fb21a2098
Clarify the text for BACKSPACE vs DELETE.
Richard M. Stallman <rms@gnu.org>
parents:
36720
diff
changeset
|
120 @kindex BS |
640fb21a2098
Clarify the text for BACKSPACE vs DELETE.
Richard M. Stallman <rms@gnu.org>
parents:
36720
diff
changeset
|
121 @kindex DELETE |
640fb21a2098
Clarify the text for BACKSPACE vs DELETE.
Richard M. Stallman <rms@gnu.org>
parents:
36720
diff
changeset
|
122 Every keyboard has a large key, labeled @key{DEL}, @key{BACKSPACE}, |
640fb21a2098
Clarify the text for BACKSPACE vs DELETE.
Richard M. Stallman <rms@gnu.org>
parents:
36720
diff
changeset
|
123 @key{BS} or @key{DELETE}, which is a short distance above the |
640fb21a2098
Clarify the text for BACKSPACE vs DELETE.
Richard M. Stallman <rms@gnu.org>
parents:
36720
diff
changeset
|
124 @key{RET} or @key{ENTER} key and is normally used for erasing what you |
36789
f71fe44b07ea
Simplify the discussion of DEL. Refer to `DEL Gets Help' node
Richard M. Stallman <rms@gnu.org>
parents:
36725
diff
changeset
|
125 have typed. Regardless of the actual name on the key, in Emacs it is |
36725
640fb21a2098
Clarify the text for BACKSPACE vs DELETE.
Richard M. Stallman <rms@gnu.org>
parents:
36720
diff
changeset
|
126 equivalent to @key{DEL}---or it should be. |
640fb21a2098
Clarify the text for BACKSPACE vs DELETE.
Richard M. Stallman <rms@gnu.org>
parents:
36720
diff
changeset
|
127 |
37357
ad563f9185fb
Minor clarifications of BACKSPACE vs DEL.
Richard M. Stallman <rms@gnu.org>
parents:
37124
diff
changeset
|
128 Many keyboards (including standard PC keyboards) have a |
ad563f9185fb
Minor clarifications of BACKSPACE vs DEL.
Richard M. Stallman <rms@gnu.org>
parents:
37124
diff
changeset
|
129 @key{BACKSPACE} key a short ways above @key{RET} or @key{ENTER}, and a |
ad563f9185fb
Minor clarifications of BACKSPACE vs DEL.
Richard M. Stallman <rms@gnu.org>
parents:
37124
diff
changeset
|
130 @key{DELETE} key elsewhere. In that case, the @key{BACKSPACE} key is |
ad563f9185fb
Minor clarifications of BACKSPACE vs DEL.
Richard M. Stallman <rms@gnu.org>
parents:
37124
diff
changeset
|
131 @key{DEL}, and the @key{DELETE} key is equivalent to @kbd{C-d}---or it |
ad563f9185fb
Minor clarifications of BACKSPACE vs DEL.
Richard M. Stallman <rms@gnu.org>
parents:
37124
diff
changeset
|
132 should be. |
36725
640fb21a2098
Clarify the text for BACKSPACE vs DELETE.
Richard M. Stallman <rms@gnu.org>
parents:
36720
diff
changeset
|
133 |
640fb21a2098
Clarify the text for BACKSPACE vs DELETE.
Richard M. Stallman <rms@gnu.org>
parents:
36720
diff
changeset
|
134 Why do we say ``or it should be''? When Emacs starts up using a |
36789
f71fe44b07ea
Simplify the discussion of DEL. Refer to `DEL Gets Help' node
Richard M. Stallman <rms@gnu.org>
parents:
36725
diff
changeset
|
135 window system, it determines automatically which key or keys should be |
38461
23f63206a867
Proofreading fixes from Chris Green <chris_e_green@yahoo.com>.
Eli Zaretskii <eliz@gnu.org>
parents:
38415
diff
changeset
|
136 equivalent to @key{DEL}. As a result, @key{BACKSPACE} and/or @key{DELETE} |
36789
f71fe44b07ea
Simplify the discussion of DEL. Refer to `DEL Gets Help' node
Richard M. Stallman <rms@gnu.org>
parents:
36725
diff
changeset
|
137 keys normally do the right things. But in some unusual cases Emacs |
f71fe44b07ea
Simplify the discussion of DEL. Refer to `DEL Gets Help' node
Richard M. Stallman <rms@gnu.org>
parents:
36725
diff
changeset
|
138 gets the wrong information from the system. If these keys don't do |
37357
ad563f9185fb
Minor clarifications of BACKSPACE vs DEL.
Richard M. Stallman <rms@gnu.org>
parents:
37124
diff
changeset
|
139 what they ought to do, you need to tell Emacs which key to use for |
38767
5889c45fd6ad
Change the name of the "DEL Doesn't Delete" node to "DEL Does Not Delete",
Eli Zaretskii <eliz@gnu.org>
parents:
38745
diff
changeset
|
140 @key{DEL}. @xref{DEL Does Not Delete}, for how to do this. |
36725
640fb21a2098
Clarify the text for BACKSPACE vs DELETE.
Richard M. Stallman <rms@gnu.org>
parents:
36720
diff
changeset
|
141 |
36789
f71fe44b07ea
Simplify the discussion of DEL. Refer to `DEL Gets Help' node
Richard M. Stallman <rms@gnu.org>
parents:
36725
diff
changeset
|
142 @findex normal-erase-is-backspace-mode |
37357
ad563f9185fb
Minor clarifications of BACKSPACE vs DEL.
Richard M. Stallman <rms@gnu.org>
parents:
37124
diff
changeset
|
143 On most text-only terminals, Emacs cannot tell which keys the |
ad563f9185fb
Minor clarifications of BACKSPACE vs DEL.
Richard M. Stallman <rms@gnu.org>
parents:
37124
diff
changeset
|
144 keyboard really has, so it follows a uniform plan which may or may not |
ad563f9185fb
Minor clarifications of BACKSPACE vs DEL.
Richard M. Stallman <rms@gnu.org>
parents:
37124
diff
changeset
|
145 fit your keyboard. The uniform plan is that the ASCII @key{DEL} |
ad563f9185fb
Minor clarifications of BACKSPACE vs DEL.
Richard M. Stallman <rms@gnu.org>
parents:
37124
diff
changeset
|
146 character deletes, and the ASCII @key{BS} (backspace) character asks |
ad563f9185fb
Minor clarifications of BACKSPACE vs DEL.
Richard M. Stallman <rms@gnu.org>
parents:
37124
diff
changeset
|
147 for help (it is the same as @kbd{C-h}). If this is not right for your |
38745 | 148 keyboard, such as if you find that the key which ought to delete backwards |
38767
5889c45fd6ad
Change the name of the "DEL Doesn't Delete" node to "DEL Does Not Delete",
Eli Zaretskii <eliz@gnu.org>
parents:
38745
diff
changeset
|
149 enters Help instead, see @ref{DEL Does Not Delete}. |
36657
0ee33338bb24
(Deletion): Mention the Delete vs Backspace keys. Document
Eli Zaretskii <eliz@gnu.org>
parents:
36162
diff
changeset
|
150 |
25829 | 151 @kindex M-\ |
152 @findex delete-horizontal-space | |
153 @kindex M-SPC | |
154 @findex just-one-space | |
155 The other delete commands are those which delete only whitespace | |
156 characters: spaces, tabs and newlines. @kbd{M-\} | |
157 (@code{delete-horizontal-space}) deletes all the spaces and tab | |
158 characters before and after point. @kbd{M-@key{SPC}} | |
159 (@code{just-one-space}) does likewise but leaves a single space after | |
160 point, regardless of the number of spaces that existed previously (even | |
38461
23f63206a867
Proofreading fixes from Chris Green <chris_e_green@yahoo.com>.
Eli Zaretskii <eliz@gnu.org>
parents:
38415
diff
changeset
|
161 if there were none before). |
25829 | 162 |
163 @kbd{C-x C-o} (@code{delete-blank-lines}) deletes all blank lines | |
164 after the current line. If the current line is blank, it deletes all | |
165 blank lines preceding the current line as well (leaving one blank line, | |
166 the current line). | |
167 | |
168 @kbd{M-^} (@code{delete-indentation}) joins the current line and the | |
169 previous line, by deleting a newline and all surrounding spaces, usually | |
170 leaving a single space. @xref{Indentation,M-^}. | |
171 | |
172 @node Killing by Lines | |
173 @subsection Killing by Lines | |
174 | |
175 @table @kbd | |
176 @item C-k | |
177 Kill rest of line or one or more lines (@code{kill-line}). | |
178 @end table | |
179 | |
180 @kindex C-k | |
181 @findex kill-line | |
182 The simplest kill command is @kbd{C-k}. If given at the beginning of | |
183 a line, it kills all the text on the line, leaving it blank. When used | |
184 on a blank line, it kills the whole line including its newline. To kill | |
185 an entire non-blank line, go to the beginning and type @kbd{C-k} twice. | |
186 | |
187 More generally, @kbd{C-k} kills from point up to the end of the line, | |
188 unless it is at the end of a line. In that case it kills the newline | |
189 following point, thus merging the next line into the current one. | |
190 Spaces and tabs that you can't see at the end of the line are ignored | |
191 when deciding which case applies, so if point appears to be at the end | |
192 of the line, you can be sure @kbd{C-k} will kill the newline. | |
193 | |
194 When @kbd{C-k} is given a positive argument, it kills that many lines | |
195 and the newlines that follow them (however, text on the current line | |
38461
23f63206a867
Proofreading fixes from Chris Green <chris_e_green@yahoo.com>.
Eli Zaretskii <eliz@gnu.org>
parents:
38415
diff
changeset
|
196 before point is not killed). With a negative argument @minus{}@var{n}, it |
25829 | 197 kills @var{n} lines preceding the current line (together with the text |
198 on the current line before point). Thus, @kbd{C-u - 2 C-k} at the front | |
199 of a line kills the two previous lines. | |
200 | |
201 @kbd{C-k} with an argument of zero kills the text before point on the | |
202 current line. | |
203 | |
204 @vindex kill-whole-line | |
205 If the variable @code{kill-whole-line} is non-@code{nil}, @kbd{C-k} at | |
206 the very beginning of a line kills the entire line including the | |
207 following newline. This variable is normally @code{nil}. | |
208 | |
209 @node Other Kill Commands | |
210 @subsection Other Kill Commands | |
211 @findex kill-region | |
212 @kindex C-w | |
213 | |
214 @table @kbd | |
215 @item C-w | |
216 Kill region (from point to the mark) (@code{kill-region}). | |
217 @item M-d | |
218 Kill word (@code{kill-word}). @xref{Words}. | |
219 @item M-@key{DEL} | |
220 Kill word backwards (@code{backward-kill-word}). | |
221 @item C-x @key{DEL} | |
222 Kill back to beginning of sentence (@code{backward-kill-sentence}). | |
223 @xref{Sentences}. | |
224 @item M-k | |
225 Kill to end of sentence (@code{kill-sentence}). | |
226 @item C-M-k | |
38206
b13ab91e3dd8
Say "expression" instead of "sexp". Update xref, Sexps -> Expressions.
Richard M. Stallman <rms@gnu.org>
parents:
37887
diff
changeset
|
227 Kill the following balanced expression (@code{kill-sexp}). @xref{Expressions}. |
25829 | 228 @item M-z @var{char} |
229 Kill through the next occurrence of @var{char} (@code{zap-to-char}). | |
230 @end table | |
231 | |
232 A kill command which is very general is @kbd{C-w} | |
233 (@code{kill-region}), which kills everything between point and the | |
234 mark. With this command, you can kill any contiguous sequence of | |
235 characters, if you first set the region around them. | |
236 | |
237 @kindex M-z | |
238 @findex zap-to-char | |
239 A convenient way of killing is combined with searching: @kbd{M-z} | |
240 (@code{zap-to-char}) reads a character and kills from point up to (and | |
241 including) the next occurrence of that character in the buffer. A | |
242 numeric argument acts as a repeat count. A negative argument means to | |
243 search backward and kill text before point. | |
244 | |
38206
b13ab91e3dd8
Say "expression" instead of "sexp". Update xref, Sexps -> Expressions.
Richard M. Stallman <rms@gnu.org>
parents:
37887
diff
changeset
|
245 Other syntactic units can be killed: words, with @kbd{M-@key{DEL}} |
b13ab91e3dd8
Say "expression" instead of "sexp". Update xref, Sexps -> Expressions.
Richard M. Stallman <rms@gnu.org>
parents:
37887
diff
changeset
|
246 and @kbd{M-d} (@pxref{Words}); balanced expressions, with @kbd{C-M-k} |
b13ab91e3dd8
Say "expression" instead of "sexp". Update xref, Sexps -> Expressions.
Richard M. Stallman <rms@gnu.org>
parents:
37887
diff
changeset
|
247 (@pxref{Expressions}); and sentences, with @kbd{C-x @key{DEL}} and |
b13ab91e3dd8
Say "expression" instead of "sexp". Update xref, Sexps -> Expressions.
Richard M. Stallman <rms@gnu.org>
parents:
37887
diff
changeset
|
248 @kbd{M-k} (@pxref{Sentences}).@refill |
25829 | 249 |
250 You can use kill commands in read-only buffers. They don't actually | |
251 change the buffer, and they beep to warn you of that, but they do copy | |
252 the text you tried to kill into the kill ring, so you can yank it into | |
253 other buffers. Most of the kill commands move point across the text | |
254 they copy in this way, so that successive kill commands build up a | |
255 single kill ring entry as usual. | |
256 | |
257 @node Yanking, Accumulating Text, Killing, Top | |
258 @section Yanking | |
259 @cindex moving text | |
260 @cindex copying text | |
261 @cindex kill ring | |
262 @cindex yanking | |
263 @cindex pasting | |
264 | |
265 @dfn{Yanking} means reinserting text previously killed. This is what | |
266 some systems call ``pasting.'' The usual way to move or copy text is to | |
267 kill it and then yank it elsewhere one or more times. | |
268 | |
269 @table @kbd | |
270 @item C-y | |
271 Yank last killed text (@code{yank}). | |
272 @item M-y | |
273 Replace text just yanked with an earlier batch of killed text | |
274 (@code{yank-pop}). | |
275 @item M-w | |
276 Save region as last killed text without actually killing it | |
277 (@code{kill-ring-save}). | |
278 @item C-M-w | |
279 Append next kill to last batch of killed text (@code{append-next-kill}). | |
280 @end table | |
281 | |
282 @menu | |
283 * Kill Ring:: Where killed text is stored. Basic yanking. | |
284 * Appending Kills:: Several kills in a row all yank together. | |
285 * Earlier Kills:: Yanking something killed some time ago. | |
286 @end menu | |
287 | |
288 @node Kill Ring | |
289 @subsection The Kill Ring | |
290 | |
291 All killed text is recorded in the @dfn{kill ring}, a list of blocks of | |
292 text that have been killed. There is only one kill ring, shared by all | |
293 buffers, so you can kill text in one buffer and yank it in another buffer. | |
294 This is the usual way to move text from one file to another. | |
295 (@xref{Accumulating Text}, for some other ways.) | |
296 | |
297 @kindex C-y | |
298 @findex yank | |
299 The command @kbd{C-y} (@code{yank}) reinserts the text of the most recent | |
300 kill. It leaves the cursor at the end of the text. It sets the mark at | |
301 the beginning of the text. @xref{Mark}. | |
302 | |
303 @kbd{C-u C-y} leaves the cursor in front of the text, and sets the | |
304 mark after it. This happens only if the argument is specified with just | |
305 a @kbd{C-u}, precisely. Any other sort of argument, including @kbd{C-u} | |
306 and digits, specifies an earlier kill to yank (@pxref{Earlier Kills}). | |
307 | |
308 @kindex M-w | |
309 @findex kill-ring-save | |
310 To copy a block of text, you can use @kbd{M-w} | |
311 (@code{kill-ring-save}), which copies the region into the kill ring | |
312 without removing it from the buffer. This is approximately equivalent | |
313 to @kbd{C-w} followed by @kbd{C-x u}, except that @kbd{M-w} does not | |
314 alter the undo history and does not temporarily change the screen. | |
315 | |
316 @node Appending Kills | |
317 @subsection Appending Kills | |
318 | |
319 @cindex appending kills in the ring | |
320 @cindex television | |
321 Normally, each kill command pushes a new entry onto the kill ring. | |
322 However, two or more kill commands in a row combine their text into a | |
323 single entry, so that a single @kbd{C-y} yanks all the text as a unit, | |
324 just as it was before it was killed. | |
325 | |
326 Thus, if you want to yank text as a unit, you need not kill all of it | |
327 with one command; you can keep killing line after line, or word after | |
328 word, until you have killed it all, and you can still get it all back at | |
329 once. | |
330 | |
331 Commands that kill forward from point add onto the end of the previous | |
332 killed text. Commands that kill backward from point add text onto the | |
333 beginning. This way, any sequence of mixed forward and backward kill | |
334 commands puts all the killed text into one entry without rearrangement. | |
335 Numeric arguments do not break the sequence of appending kills. For | |
336 example, suppose the buffer contains this text: | |
337 | |
338 @example | |
339 This is a line @point{}of sample text. | |
340 @end example | |
341 | |
342 @noindent | |
343 with point shown by @point{}. If you type @kbd{M-d M-@key{DEL} M-d | |
344 M-@key{DEL}}, killing alternately forward and backward, you end up with | |
345 @samp{a line of sample} as one entry in the kill ring, and @samp{This | |
38461
23f63206a867
Proofreading fixes from Chris Green <chris_e_green@yahoo.com>.
Eli Zaretskii <eliz@gnu.org>
parents:
38415
diff
changeset
|
346 is@ @ text.} in the buffer. (Note the double space between @samp{is} |
23f63206a867
Proofreading fixes from Chris Green <chris_e_green@yahoo.com>.
Eli Zaretskii <eliz@gnu.org>
parents:
38415
diff
changeset
|
347 and @samp{text}, which you can clean up with @kbd{M-@key{SPC}} or |
23f63206a867
Proofreading fixes from Chris Green <chris_e_green@yahoo.com>.
Eli Zaretskii <eliz@gnu.org>
parents:
38415
diff
changeset
|
348 @kbd{M-q}.) |
25829 | 349 |
350 Another way to kill the same text is to move back two words with | |
351 @kbd{M-b M-b}, then kill all four words forward with @kbd{C-u M-d}. | |
352 This produces exactly the same results in the buffer and in the kill | |
353 ring. @kbd{M-f M-f C-u M-@key{DEL}} kills the same text, all going | |
354 backward; once again, the result is the same. The text in the kill ring | |
355 entry always has the same order that it had in the buffer before you | |
356 killed it. | |
357 | |
358 @kindex C-M-w | |
359 @findex append-next-kill | |
360 If a kill command is separated from the last kill command by other | |
361 commands (not just numeric arguments), it starts a new entry on the kill | |
362 ring. But you can force it to append by first typing the command | |
363 @kbd{C-M-w} (@code{append-next-kill}) right before it. The @kbd{C-M-w} | |
364 tells the following command, if it is a kill command, to append the text | |
365 it kills to the last killed text, instead of starting a new entry. With | |
366 @kbd{C-M-w}, you can kill several separated pieces of text and | |
367 accumulate them to be yanked back in one place.@refill | |
368 | |
369 A kill command following @kbd{M-w} does not append to the text that | |
370 @kbd{M-w} copied into the kill ring. | |
371 | |
372 @node Earlier Kills | |
373 @subsection Yanking Earlier Kills | |
374 | |
375 @cindex yanking previous kills | |
376 @kindex M-y | |
377 @findex yank-pop | |
378 To recover killed text that is no longer the most recent kill, use the | |
379 @kbd{M-y} command (@code{yank-pop}). It takes the text previously | |
380 yanked and replaces it with the text from an earlier kill. So, to | |
381 recover the text of the next-to-the-last kill, first use @kbd{C-y} to | |
382 yank the last kill, and then use @kbd{M-y} to replace it with the | |
383 previous kill. @kbd{M-y} is allowed only after a @kbd{C-y} or another | |
384 @kbd{M-y}. | |
385 | |
386 You can understand @kbd{M-y} in terms of a ``last yank'' pointer which | |
387 points at an entry in the kill ring. Each time you kill, the ``last | |
388 yank'' pointer moves to the newly made entry at the front of the ring. | |
389 @kbd{C-y} yanks the entry which the ``last yank'' pointer points to. | |
390 @kbd{M-y} moves the ``last yank'' pointer to a different entry, and the | |
391 text in the buffer changes to match. Enough @kbd{M-y} commands can move | |
392 the pointer to any entry in the ring, so you can get any entry into the | |
393 buffer. Eventually the pointer reaches the end of the ring; the next | |
38461
23f63206a867
Proofreading fixes from Chris Green <chris_e_green@yahoo.com>.
Eli Zaretskii <eliz@gnu.org>
parents:
38415
diff
changeset
|
394 @kbd{M-y} loops back around to the first entry again. |
25829 | 395 |
396 @kbd{M-y} moves the ``last yank'' pointer around the ring, but it does | |
397 not change the order of the entries in the ring, which always runs from | |
398 the most recent kill at the front to the oldest one still remembered. | |
399 | |
400 @kbd{M-y} can take a numeric argument, which tells it how many entries | |
401 to advance the ``last yank'' pointer by. A negative argument moves the | |
402 pointer toward the front of the ring; from the front of the ring, it | |
403 moves ``around'' to the last entry and continues forward from there. | |
404 | |
405 Once the text you are looking for is brought into the buffer, you can | |
406 stop doing @kbd{M-y} commands and it will stay there. It's just a copy | |
407 of the kill ring entry, so editing it in the buffer does not change | |
408 what's in the ring. As long as no new killing is done, the ``last | |
409 yank'' pointer remains at the same place in the kill ring, so repeating | |
410 @kbd{C-y} will yank another copy of the same previous kill. | |
411 | |
38745 | 412 If you know how many @kbd{M-y} commands it would take to find the |
413 text you want, you can yank that text in one step using @kbd{C-y} with | |
414 a numeric argument. @kbd{C-y} with an argument restores the text from | |
415 the specified kill ring entry, counting back from the most recent as | |
416 1. Thus, @kbd{C-u 2 C-y} gets the next-to-the-last block of killed | |
417 text---it is equivalent to @kbd{C-y M-y}. @kbd{C-y} with a numeric | |
418 argument starts counting from the ``last yank'' pointer, and sets the | |
419 ``last yank'' pointer to the entry that it yanks. | |
25829 | 420 |
421 @vindex kill-ring-max | |
422 The length of the kill ring is controlled by the variable | |
423 @code{kill-ring-max}; no more than that many blocks of killed text are | |
424 saved. | |
425 | |
426 @vindex kill-ring | |
427 The actual contents of the kill ring are stored in a variable named | |
428 @code{kill-ring}; you can view the entire contents of the kill ring with | |
429 the command @kbd{C-h v kill-ring}. | |
430 | |
431 @node Accumulating Text, Rectangles, Yanking, Top | |
432 @section Accumulating Text | |
433 @findex append-to-buffer | |
434 @findex prepend-to-buffer | |
435 @findex copy-to-buffer | |
436 @findex append-to-file | |
437 | |
438 @cindex accumulating scattered text | |
439 Usually we copy or move text by killing it and yanking it, but there | |
440 are other methods convenient for copying one block of text in many | |
441 places, or for copying many scattered blocks of text into one place. To | |
442 copy one block to many places, store it in a register | |
443 (@pxref{Registers}). Here we describe the commands to accumulate | |
444 scattered pieces of text into a buffer or into a file. | |
445 | |
446 @table @kbd | |
447 @item M-x append-to-buffer | |
38745 | 448 Append region to the contents of a specified buffer. |
25829 | 449 @item M-x prepend-to-buffer |
38745 | 450 Prepend region to the contents of a specified buffer. |
25829 | 451 @item M-x copy-to-buffer |
38461
23f63206a867
Proofreading fixes from Chris Green <chris_e_green@yahoo.com>.
Eli Zaretskii <eliz@gnu.org>
parents:
38415
diff
changeset
|
452 Copy region into a specified buffer, deleting that buffer's old contents. |
25829 | 453 @item M-x insert-buffer |
38745 | 454 Insert the contents of a specified buffer into current buffer at point. |
25829 | 455 @item M-x append-to-file |
38745 | 456 Append region to the contents of a specified file, at the end. |
25829 | 457 @end table |
458 | |
459 To accumulate text into a buffer, use @kbd{M-x append-to-buffer}. | |
460 This reads a buffer name, then inserts a copy of the region into the | |
461 buffer specified. If you specify a nonexistent buffer, | |
462 @code{append-to-buffer} creates the buffer. The text is inserted | |
463 wherever point is in that buffer. If you have been using the buffer for | |
464 editing, the copied text goes into the middle of the text of the buffer, | |
38461
23f63206a867
Proofreading fixes from Chris Green <chris_e_green@yahoo.com>.
Eli Zaretskii <eliz@gnu.org>
parents:
38415
diff
changeset
|
465 starting from wherever point happens to be at that moment. |
25829 | 466 |
467 Point in that buffer is left at the end of the copied text, so | |
468 successive uses of @code{append-to-buffer} accumulate the text in the | |
469 specified buffer in the same order as they were copied. Strictly | |
470 speaking, @code{append-to-buffer} does not always append to the text | |
471 already in the buffer---it appends only if point in that buffer is at the end. | |
472 However, if @code{append-to-buffer} is the only command you use to alter | |
473 a buffer, then point is always at the end. | |
474 | |
475 @kbd{M-x prepend-to-buffer} is just like @code{append-to-buffer} | |
476 except that point in the other buffer is left before the copied text, so | |
477 successive prependings add text in reverse order. @kbd{M-x | |
38461
23f63206a867
Proofreading fixes from Chris Green <chris_e_green@yahoo.com>.
Eli Zaretskii <eliz@gnu.org>
parents:
38415
diff
changeset
|
478 copy-to-buffer} is similar, except that any existing text in the other |
25829 | 479 buffer is deleted, so the buffer is left containing just the text newly |
480 copied into it. | |
481 | |
38415
80b960104fbd
Minor clarification about insert-buffer.
Richard M. Stallman <rms@gnu.org>
parents:
38206
diff
changeset
|
482 To retrieve the accumulated text from another buffer, use the |
80b960104fbd
Minor clarification about insert-buffer.
Richard M. Stallman <rms@gnu.org>
parents:
38206
diff
changeset
|
483 command @kbd{M-x insert-buffer}; this too takes @var{buffername} as an |
80b960104fbd
Minor clarification about insert-buffer.
Richard M. Stallman <rms@gnu.org>
parents:
38206
diff
changeset
|
484 argument. It inserts a copy of the whole text in buffer |
38745 | 485 @var{buffername} into the current buffer at point, and sets the mark |
38415
80b960104fbd
Minor clarification about insert-buffer.
Richard M. Stallman <rms@gnu.org>
parents:
38206
diff
changeset
|
486 after the inserted text. Alternatively, you can select the other |
80b960104fbd
Minor clarification about insert-buffer.
Richard M. Stallman <rms@gnu.org>
parents:
38206
diff
changeset
|
487 buffer for editing, then copy text from it by killing. |
80b960104fbd
Minor clarification about insert-buffer.
Richard M. Stallman <rms@gnu.org>
parents:
38206
diff
changeset
|
488 @xref{Buffers}, for background information on buffers. |
25829 | 489 |
490 Instead of accumulating text within Emacs, in a buffer, you can append | |
491 text directly into a file with @kbd{M-x append-to-file}, which takes | |
492 @var{filename} as an argument. It adds the text of the region to the end | |
493 of the specified file. The file is changed immediately on disk. | |
494 | |
495 You should use @code{append-to-file} only with files that are | |
496 @emph{not} being visited in Emacs. Using it on a file that you are | |
497 editing in Emacs would change the file behind Emacs's back, which | |
498 can lead to losing some of your editing. | |
499 | |
500 @node Rectangles, Registers, Accumulating Text, Top | |
501 @section Rectangles | |
502 @cindex rectangle | |
503 @cindex columns (and rectangles) | |
504 @cindex killing rectangular areas of text | |
505 | |
506 The rectangle commands operate on rectangular areas of the text: all | |
507 the characters between a certain pair of columns, in a certain range of | |
508 lines. Commands are provided to kill rectangles, yank killed rectangles, | |
509 clear them out, fill them with blanks or text, or delete them. Rectangle | |
510 commands are useful with text in multicolumn formats, and for changing | |
511 text into or out of such formats. | |
512 | |
513 When you must specify a rectangle for a command to work on, you do it | |
514 by putting the mark at one corner and point at the opposite corner. The | |
515 rectangle thus specified is called the @dfn{region-rectangle} because | |
38461
23f63206a867
Proofreading fixes from Chris Green <chris_e_green@yahoo.com>.
Eli Zaretskii <eliz@gnu.org>
parents:
38415
diff
changeset
|
516 you control it in much the same way as the region is controlled. But |
25829 | 517 remember that a given combination of point and mark values can be |
518 interpreted either as a region or as a rectangle, depending on the | |
519 command that uses them. | |
520 | |
521 If point and the mark are in the same column, the rectangle they | |
522 delimit is empty. If they are in the same line, the rectangle is one | |
523 line high. This asymmetry between lines and columns comes about | |
524 because point (and likewise the mark) is between two columns, but within | |
525 a line. | |
526 | |
527 @table @kbd | |
528 @item C-x r k | |
529 Kill the text of the region-rectangle, saving its contents as the | |
530 ``last killed rectangle'' (@code{kill-rectangle}). | |
531 @item C-x r d | |
532 Delete the text of the region-rectangle (@code{delete-rectangle}). | |
533 @item C-x r y | |
534 Yank the last killed rectangle with its upper left corner at point | |
535 (@code{yank-rectangle}). | |
536 @item C-x r o | |
537 Insert blank space to fill the space of the region-rectangle | |
538 (@code{open-rectangle}). This pushes the previous contents of the | |
539 region-rectangle rightward. | |
540 @item M-x clear-rectangle | |
541 Clear the region-rectangle by replacing its contents with spaces. | |
542 @item M-x delete-whitespace-rectangle | |
543 Delete whitespace in each of the lines on the specified rectangle, | |
544 starting from the left edge column of the rectangle. | |
27749 | 545 @item C-x r t @var{string} @key{RET} |
37447
0bc52782144f
Adapt to the change of string-rectangle back to 20.x behaviour.
Gerd Moellmann <gerd@gnu.org>
parents:
37357
diff
changeset
|
546 Replace rectangle contents with @var{string} on each line. |
25829 | 547 (@code{string-rectangle}). |
37447
0bc52782144f
Adapt to the change of string-rectangle back to 20.x behaviour.
Gerd Moellmann <gerd@gnu.org>
parents:
37357
diff
changeset
|
548 @item M-x string-insert-rectangle @key{RET} @var{string} @key{RET} |
37572
956f7346b171
(Rectangles): Remove redundant and erroneous name of replace-rectangle
Eli Zaretskii <eliz@gnu.org>
parents:
37486
diff
changeset
|
549 Insert @var{string} on each line of the rectangle. |
25829 | 550 @end table |
551 | |
38461
23f63206a867
Proofreading fixes from Chris Green <chris_e_green@yahoo.com>.
Eli Zaretskii <eliz@gnu.org>
parents:
38415
diff
changeset
|
552 The rectangle operations fall into two classes: commands for |
23f63206a867
Proofreading fixes from Chris Green <chris_e_green@yahoo.com>.
Eli Zaretskii <eliz@gnu.org>
parents:
38415
diff
changeset
|
553 deleting and inserting rectangles, and commands for blank rectangles. |
25829 | 554 |
555 @kindex C-x r k | |
556 @kindex C-x r d | |
557 @findex kill-rectangle | |
558 @findex delete-rectangle | |
559 There are two ways to get rid of the text in a rectangle: you can | |
560 discard the text (delete it) or save it as the ``last killed'' | |
561 rectangle. The commands for these two ways are @kbd{C-x r d} | |
562 (@code{delete-rectangle}) and @kbd{C-x r k} (@code{kill-rectangle}). In | |
563 either case, the portion of each line that falls inside the rectangle's | |
38461
23f63206a867
Proofreading fixes from Chris Green <chris_e_green@yahoo.com>.
Eli Zaretskii <eliz@gnu.org>
parents:
38415
diff
changeset
|
564 boundaries is deleted, causing any following text on the line to |
25829 | 565 move left into the gap. |
566 | |
567 Note that ``killing'' a rectangle is not killing in the usual sense; the | |
568 rectangle is not stored in the kill ring, but in a special place that | |
569 can only record the most recent rectangle killed. This is because yanking | |
570 a rectangle is so different from yanking linear text that different yank | |
571 commands have to be used and yank-popping is hard to make sense of. | |
572 | |
573 @kindex C-x r y | |
574 @findex yank-rectangle | |
575 To yank the last killed rectangle, type @kbd{C-x r y} | |
576 (@code{yank-rectangle}). Yanking a rectangle is the opposite of killing | |
577 one. Point specifies where to put the rectangle's upper left corner. | |
578 The rectangle's first line is inserted there, the rectangle's second | |
38481 | 579 line is inserted at the same horizontal position, but one line |
580 vertically down, and so on. The number of lines affected is determined | |
581 by the height of the saved rectangle. | |
25829 | 582 |
583 You can convert single-column lists into double-column lists using | |
584 rectangle killing and yanking; kill the second half of the list as a | |
585 rectangle and then yank it beside the first line of the list. | |
586 @xref{Two-Column}, for another way to edit multi-column text. | |
587 | |
588 You can also copy rectangles into and out of registers with @kbd{C-x r | |
589 r @var{r}} and @kbd{C-x r i @var{r}}. @xref{RegRect,,Rectangle | |
590 Registers}. | |
591 | |
592 @kindex C-x r o | |
593 @findex open-rectangle | |
594 @findex clear-rectangle | |
595 There are two commands you can use for making blank rectangles: | |
596 @kbd{M-x clear-rectangle} which blanks out existing text, and @kbd{C-x r | |
597 o} (@code{open-rectangle}) which inserts a blank rectangle. Clearing a | |
598 rectangle is equivalent to deleting it and then inserting a blank | |
599 rectangle of the same size. | |
600 | |
601 @findex delete-whitespace-rectangle | |
602 The command @kbd{M-x delete-whitespace-rectangle} deletes horizontal | |
603 whitespace starting from a particular column. This applies to each of | |
604 the lines in the rectangle, and the column is specified by the left | |
605 edge of the rectangle. The right edge of the rectangle does not make | |
606 any difference to this command. | |
607 | |
608 @kindex C-x r t | |
609 @findex string-rectangle | |
37585
d44c87635f6e
(Rectangles): Remove the description of replace-rectangle.
Eli Zaretskii <eliz@gnu.org>
parents:
37572
diff
changeset
|
610 The command @kbd{C-x r t} (@code{string-rectangle}) replaces the |
37447
0bc52782144f
Adapt to the change of string-rectangle back to 20.x behaviour.
Gerd Moellmann <gerd@gnu.org>
parents:
37357
diff
changeset
|
611 contents of a region-rectangle with a string on each line. The |
0bc52782144f
Adapt to the change of string-rectangle back to 20.x behaviour.
Gerd Moellmann <gerd@gnu.org>
parents:
37357
diff
changeset
|
612 string's width need not be the same as the width of the rectangle. If |
0bc52782144f
Adapt to the change of string-rectangle back to 20.x behaviour.
Gerd Moellmann <gerd@gnu.org>
parents:
37357
diff
changeset
|
613 the string's width is less, the text after the rectangle shifts left; |
0bc52782144f
Adapt to the change of string-rectangle back to 20.x behaviour.
Gerd Moellmann <gerd@gnu.org>
parents:
37357
diff
changeset
|
614 if the string is wider than the rectangle, the text after the |
0bc52782144f
Adapt to the change of string-rectangle back to 20.x behaviour.
Gerd Moellmann <gerd@gnu.org>
parents:
37357
diff
changeset
|
615 rectangle shifts right. |
33805 | 616 |
37447
0bc52782144f
Adapt to the change of string-rectangle back to 20.x behaviour.
Gerd Moellmann <gerd@gnu.org>
parents:
37357
diff
changeset
|
617 @findex string-insert-rectangle |
0bc52782144f
Adapt to the change of string-rectangle back to 20.x behaviour.
Gerd Moellmann <gerd@gnu.org>
parents:
37357
diff
changeset
|
618 The command @kbd{M-x string-insert-rectangle} is similar to |
0bc52782144f
Adapt to the change of string-rectangle back to 20.x behaviour.
Gerd Moellmann <gerd@gnu.org>
parents:
37357
diff
changeset
|
619 @code{string-rectangle}, but inserts the string on each line, |
0bc52782144f
Adapt to the change of string-rectangle back to 20.x behaviour.
Gerd Moellmann <gerd@gnu.org>
parents:
37357
diff
changeset
|
620 shifting the original text to the right. |