Commit 1f67b1dd authored by Richard M. Stallman's avatar Richard M. Stallman
Browse files

(Killing): Reorganize section.

No more TeX-only text; put the node command at start of chapter.
But the first section heading is used only in TeX.
Rewrite the text to read better in this mode.
(Graphical Kill): New subnode gets some of the text that
used to be in the first section.
parent c734ae59
...@@ -2,84 +2,59 @@ ...@@ -2,84 +2,59 @@
@c Copyright (C) 1985,86,87,93,94,95,97,2000,2001,2004 @c Copyright (C) 1985,86,87,93,94,95,97,2000,2001,2004
@c Free Software Foundation, Inc. @c Free Software Foundation, Inc.
@c See file emacs.texi for copying conditions. @c See file emacs.texi for copying conditions.
@iftex
@chapter Killing and Moving Text
@dfn{Killing} means erasing text and copying it into the @dfn{kill
ring}, from which it can be retrieved by @dfn{yanking} it. Some systems
use the terms ``cutting'' and ``pasting'' for these operations.
The most common way of moving or copying text within Emacs is to kill it
and later yank it elsewhere in one or more places. This is very safe
because Emacs remembers several recent kills, not just the last one. It
is versatile, because the many commands for killing syntactic units can
also be used for moving those units. But there are other ways of
copying text for special purposes.
On terminals that support multiple windows for multiple applications,
the kill commands also provide a way to select text for other applications
to copy, and the Emacs yank commands can access selections made by
other programs.
Emacs has only one kill ring for all buffers, so you can kill text in
one buffer and yank it in another buffer.
@end iftex @node Killing, Yanking, Mark, Top
@chapter Killing and Moving Text
@ifnottex @ifnottex
@raisesections @raisesections
@end ifnottex @end ifnottex
@node Killing, Yanking, Mark, Top @dfn{Killing} means erasing text and copying it into the @dfn{kill
ring}, from which you can bring it back into the buffer by
@dfn{yanking} it. (Some systems use the terms ``cutting'' and
``pasting'' for these operations.) This is the most common way of
moving or copying text within Emacs. Killing and yanking is very safe
because Emacs remembers several recent kills, not just the last one.
It is versatile, because the many commands for killing syntactic units
can also be used for moving those units. But there are other ways of
copying text for special purposes.
@iftex
@section Deletion and Killing @section Deletion and Killing
@end iftex
@cindex killing text @cindex killing text
@cindex cutting text @cindex cutting text
@cindex deletion @cindex deletion
Most commands which erase text from the buffer save it in the @dfn{kill 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. ring. These commands are known as @dfn{kill} commands. The commands
These commands are known as @dfn{kill} commands. The rest of the that erase text but do not save it in the kill ring are known as
commands that erase text do not save it in the kill ring; they are known @dfn{delete} commands. The @kbd{C-x u} (@code{undo}) command
as @dfn{delete} commands. (This distinction is made only for erasure of (@pxref{Undo}) can undo both kill and delete commands; the importance
text in the buffer.) If you do a kill or delete command by mistake, you of the kill ring is that you can also yank the text in a different
can use the @kbd{C-x u} (@code{undo}) command to undo it place or places. Emacs has only one kill ring for all buffers, so you
(@pxref{Undo}). can kill text in one buffer and yank it in another buffer.
@vindex kill-read-only-ok
@cindex read-only text, killing
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.
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 The delete commands include @kbd{C-d} (@code{delete-char}) and
@key{DEL} (@code{delete-backward-char}), which delete only one @key{DEL} (@code{delete-backward-char}), which delete only one
character at a time, and those commands that delete only spaces or character at a time, and those commands that delete only spaces or
newlines. Commands that can destroy significant amounts of nontrivial newlines. Commands that can erase significant amounts of nontrivial
data generally do a kill operation instead. The commands' names and data generally do a kill operation instead. The commands' names and
individual descriptions use the words @samp{kill} and @samp{delete} to individual descriptions use the words @samp{kill} and @samp{delete} to
say which kind of operation they perform. say which kind of operation they perform.
On window systems, the most recent kill done in Emacs is also the @vindex kill-read-only-ok
primary selection, if it is more recent than any selection you made in @cindex read-only text, killing
another program. This means that the paste commands of other window You cannot kill read-only text, since such text does not allow any
applications copy the text that you killed in Emacs. 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.
@cindex Delete Selection mode Therefore, the kill commands work specially in a read-only buffer:
@cindex mode, Delete Selection they move over text, and copy it to the kill ring, without actually
@findex delete-selection-mode deleting it from the buffer. Normally, kill commands beep and display
Many window systems follow the convention that insertion while text an error message when this happens. But if you set the variable
is selected deletes the selected text. You can make Emacs behave this @code{kill-read-only-ok} to a non-@code{nil} value, they just print a
way by enabling Delete Selection mode, with @kbd{M-x message in the echo area to explain why the text has not been erased.
delete-selection-mode}, or using Custom. Another effect of this mode
is that @key{DEL}, @kbd{C-d} and some other keys, when a selection
exists, will kill the whole selection. It also enables Transient Mark
mode (@pxref{Transient Mark}).
@menu @menu
* Deletion:: Commands for deleting small amounts of text and * Deletion:: Commands for deleting small amounts of text and
...@@ -87,6 +62,8 @@ mode (@pxref{Transient Mark}). ...@@ -87,6 +62,8 @@ mode (@pxref{Transient Mark}).
* Killing by Lines:: How to kill entire lines of text at one time. * Killing by Lines:: How to kill entire lines of text at one time.
* Other Kill Commands:: Commands to kill large regions of text and * 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.
* Graphical Kill:: The kill ring on graphical terminals:
yanking between applications.
@end menu @end menu
@need 1500 @need 1500
...@@ -652,6 +629,28 @@ rectangle shifts right. ...@@ -652,6 +629,28 @@ rectangle shifts right.
@code{string-rectangle}, but inserts the string on each line, @code{string-rectangle}, but inserts the string on each line,
shifting the original text to the right. shifting the original text to the right.
@node Graphical Kill
@section Killing on Graphical Terminals
On multi-window terminals, the most recent kill done in Emacs is
also the primary selection, if it is more recent than any selection
you made in another program. This means that the paste commands of
other applications with separate windows copy the text that you killed
in Emacs. In addition, Emacs yank commands treat other applications'
selections as part of the kill ring, so you can yank them into Emacs.
@cindex Delete Selection mode
@cindex mode, Delete Selection
@findex delete-selection-mode
Many window systems follow the convention that insertion while text
is selected deletes the selected text. You can make Emacs behave this
way by enabling Delete Selection mode, with @kbd{M-x
delete-selection-mode}, or using Custom. Another effect of this mode
is that @key{DEL}, @kbd{C-d} and some other keys, when a selection
exists, will kill the whole selection. It also enables Transient Mark
mode (@pxref{Transient Mark}).
@ifnottex @ifnottex
@lowersections @lowersections
@end ifnottex @end ifnottex
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment