@c This is part of the Emacs manual.
-@c Copyright (C) 1985,86,87,93,94,95,97,00,2001 Free Software Foundation, Inc.
+@c Copyright (C) 1985,86,87,93,94,95,97,2000,2001,2004
+@c Free Software Foundation, Inc.
@c See file emacs.texi for copying conditions.
@iftex
@chapter Killing and Moving Text
@end iftex
+@ifnottex
+@raisesections
+@end ifnottex
+
@node Killing, Yanking, Mark, Top
@section Deletion and Killing
@cindex killing text
@cindex cutting text
@cindex deletion
- Most commands which erase text from the buffer save it in the kill
-ring so that you can move or copy it to other parts of the buffer.
+ Most commands which erase text from the buffer save it in the @dfn{kill
+ring} so that you can move or copy it to other parts of the buffer.
These commands are known as @dfn{kill} commands. The rest of the
commands that erase text do not save it in the kill ring; they are known
as @dfn{delete} commands. (This distinction is made only for erasure of
You cannot kill read-only text, since such text does not allow any
kind of modification. But some users like to use the kill commands to
copy read-only text into the kill ring, without actually changing it.
-If you set the variable @code{kill-read-only-ok} to a non-@code{nil}
-value, the kill commands work specially in a read-only buffer: they
-move over text, and copy it to the kill ring, without actually
-deleting it from the buffer. When this happens, a message in the echo
-area tells you what is happening.
+Therefore, the kill commands work specially in a read-only buffer:
+they move over text, and copy it to the kill ring, without actually
+deleting it from the buffer. Normally, Emacs beeps and prints an
+error message when this happens. But if you set the variable
+@code{kill-read-only-ok} to a non-@code{nil} value, it just prints a
+message in the echo area, telling you what is happening.
The delete commands include @kbd{C-d} (@code{delete-char}) and
@key{DEL} (@code{delete-backward-char}), which delete only one
blank areas.
* Killing by Lines:: How to kill entire lines of text at one time.
* Other Kill Commands:: Commands to kill large regions of text and
- syntactic units such as words and sentences.
+ syntactic units such as words and sentences.
@end menu
@need 1500
@findex normal-erase-is-backspace-mode
On most text-only terminals, Emacs cannot tell which keys the
keyboard really has, so it follows a uniform plan which may or may not
-fit your keyboard. The uniform plan is that the ASCII @key{DEL}
-character deletes, and the ASCII @key{BS} (backspace) character asks
+fit your keyboard. The uniform plan is that the @acronym{ASCII} @key{DEL}
+character deletes, and the @acronym{ASCII} @key{BS} (backspace) character asks
for help (it is the same as @kbd{C-h}). If this is not right for your
keyboard, such as if you find that the key which ought to delete backwards
enters Help instead, see @ref{DEL Does Not Delete}.
@dfn{Yanking} means reinserting text previously killed. This is what
some systems call ``pasting.'' The usual way to move or copy text is to
-kill it and then yank it elsewhere one or more times.
+kill it and then yank it elsewhere one or more times. This is very safe
+because Emacs remembers many recent kills, not just the last one.
@table @kbd
@item C-y
@cindex yanking and text properties
@vindex yank-excluded-properties
The yank commands discard certain text properties from the text that
-is thanked, those that might lead to annoying results. For instance,
+is yanked, those that might lead to annoying results. For instance,
they discard text properties that respond to the mouse or specify key
bindings. The variable @code{yank-excluded-properties} specifies the
properties to discard. Yanking of register contents and rectangles
@table @kbd
@item C-x r k
-Kill the text of the region-rectangle, saving its contents as the
+Kill the text of the region-rectangle, saving its contents as the
``last killed rectangle'' (@code{kill-rectangle}).
@item C-x r d
Delete the text of the region-rectangle (@code{delete-rectangle}).
Insert blank space to fill the space of the region-rectangle
(@code{open-rectangle}). This pushes the previous contents of the
region-rectangle rightward.
-@item M-x clear-rectangle
-Clear the region-rectangle by replacing its contents with spaces.
+@item C-x r c
+Clear the region-rectangle by replacing its contents with spaces
+(@code{clear-rectangle}).
@item M-x delete-whitespace-rectangle
Delete whitespace in each of the lines on the specified rectangle,
starting from the left edge column of the rectangle.
@kindex C-x r o
@findex open-rectangle
+@kindex C-x r c
@findex clear-rectangle
There are two commands you can use for making blank rectangles:
-@kbd{M-x clear-rectangle} which blanks out existing text, and @kbd{C-x r
-o} (@code{open-rectangle}) which inserts a blank rectangle. Clearing a
-rectangle is equivalent to deleting it and then inserting a blank
-rectangle of the same size.
+@kbd{C-x r c} (@code{clear-rectangle}) which blanks out existing text,
+and @kbd{C-x r o} (@code{open-rectangle}) which inserts a blank
+rectangle. Clearing a rectangle is equivalent to deleting it and then
+inserting a blank rectangle of the same size.
@findex delete-whitespace-rectangle
The command @kbd{M-x delete-whitespace-rectangle} deletes horizontal
rectangle shifts right.
@findex string-insert-rectangle
- The command @kbd{M-x string-insert-rectangle} is similar to
-@code{string-rectangle}, but inserts the string on each line,
+ The command @kbd{M-x string-insert-rectangle} is similar to
+@code{string-rectangle}, but inserts the string on each line,
shifting the original text to the right.
+
+@ifnottex
+@lowersections
+@end ifnottex
+
+@ignore
+ arch-tag: d8da8f96-0928-449a-816e-ff2d3497866c
+@end ignore