2 |
@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 |
3 |
@c Free Software Foundation, Inc. |
@c Free Software Foundation, Inc. |
4 |
@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. |
|
5 |
|
|
6 |
@end iftex |
@node Killing, Yanking, Mark, Top |
7 |
|
@chapter Killing and Moving Text |
8 |
|
|
9 |
@ifnottex |
@ifnottex |
10 |
@raisesections |
@raisesections |
11 |
@end ifnottex |
@end ifnottex |
12 |
|
|
13 |
@node Killing, Yanking, Mark, Top |
@dfn{Killing} means erasing text and copying it into the @dfn{kill |
14 |
|
ring}, from which you can bring it back into the buffer by |
15 |
|
@dfn{yanking} it. (Some systems use the terms ``cutting'' and |
16 |
|
``pasting'' for these operations.) This is the most common way of |
17 |
|
moving or copying text within Emacs. Killing and yanking is very safe |
18 |
|
because Emacs remembers several recent kills, not just the last one. |
19 |
|
It is versatile, because the many commands for killing syntactic units |
20 |
|
can also be used for moving those units. But there are other ways of |
21 |
|
copying text for special purposes. |
22 |
|
|
23 |
|
@iftex |
24 |
@section Deletion and Killing |
@section Deletion and Killing |
25 |
|
@end iftex |
26 |
|
|
27 |
@cindex killing text |
@cindex killing text |
28 |
@cindex cutting text |
@cindex cutting text |
29 |
@cindex deletion |
@cindex deletion |
30 |
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 |
31 |
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 |
32 |
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 |
33 |
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 |
34 |
as @dfn{delete} commands. (This distinction is made only for erasure of |
(@pxref{Undo}) can undo both kill and delete commands; the importance |
35 |
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 |
36 |
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 |
37 |
(@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. |
|
38 |
|
|
39 |
The delete commands include @kbd{C-d} (@code{delete-char}) and |
The delete commands include @kbd{C-d} (@code{delete-char}) and |
40 |
@key{DEL} (@code{delete-backward-char}), which delete only one |
@key{DEL} (@code{delete-backward-char}), which delete only one |
41 |
character at a time, and those commands that delete only spaces or |
character at a time, and those commands that delete only spaces or |
42 |
newlines. Commands that can destroy significant amounts of nontrivial |
newlines. Commands that can erase significant amounts of nontrivial |
43 |
data generally do a kill operation instead. The commands' names and |
data generally do a kill operation instead. The commands' names and |
44 |
individual descriptions use the words @samp{kill} and @samp{delete} to |
individual descriptions use the words @samp{kill} and @samp{delete} to |
45 |
say which kind of operation they perform. |
say which kind of operation they perform. |
46 |
|
|
47 |
On window systems, the most recent kill done in Emacs is also the |
@vindex kill-read-only-ok |
48 |
primary selection, if it is more recent than any selection you made in |
@cindex read-only text, killing |
49 |
another program. This means that the paste commands of other window |
You cannot kill read-only text, since such text does not allow any |
50 |
applications copy the text that you killed in Emacs. |
kind of modification. But some users like to use the kill commands to |
51 |
|
copy read-only text into the kill ring, without actually changing it. |
52 |
@cindex Delete Selection mode |
Therefore, the kill commands work specially in a read-only buffer: |
53 |
@cindex mode, Delete Selection |
they move over text, and copy it to the kill ring, without actually |
54 |
@findex delete-selection-mode |
deleting it from the buffer. Normally, kill commands beep and display |
55 |
Many window systems follow the convention that insertion while text |
an error message when this happens. But if you set the variable |
56 |
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 |
57 |
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}). |
|
58 |
|
|
59 |
@menu |
@menu |
60 |
* Deletion:: Commands for deleting small amounts of text and |
* Deletion:: Commands for deleting small amounts of text and |
62 |
* 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. |
63 |
* Other Kill Commands:: Commands to kill large regions of text and |
* Other Kill Commands:: Commands to kill large regions of text and |
64 |
syntactic units such as words and sentences. |
syntactic units such as words and sentences. |
65 |
|
* Graphical Kill:: The kill ring on graphical terminals: |
66 |
|
yanking between applications. |
67 |
@end menu |
@end menu |
68 |
|
|
69 |
@need 1500 |
@need 1500 |
629 |
@code{string-rectangle}, but inserts the string on each line, |
@code{string-rectangle}, but inserts the string on each line, |
630 |
shifting the original text to the right. |
shifting the original text to the right. |
631 |
|
|
632 |
|
@node Graphical Kill |
633 |
|
@section Killing on Graphical Terminals |
634 |
|
|
635 |
|
On multi-window terminals, the most recent kill done in Emacs is |
636 |
|
also the primary selection, if it is more recent than any selection |
637 |
|
you made in another program. This means that the paste commands of |
638 |
|
other applications with separate windows copy the text that you killed |
639 |
|
in Emacs. In addition, Emacs yank commands treat other applications' |
640 |
|
selections as part of the kill ring, so you can yank them into Emacs. |
641 |
|
|
642 |
|
@cindex Delete Selection mode |
643 |
|
@cindex mode, Delete Selection |
644 |
|
@findex delete-selection-mode |
645 |
|
Many window systems follow the convention that insertion while text |
646 |
|
is selected deletes the selected text. You can make Emacs behave this |
647 |
|
way by enabling Delete Selection mode, with @kbd{M-x |
648 |
|
delete-selection-mode}, or using Custom. Another effect of this mode |
649 |
|
is that @key{DEL}, @kbd{C-d} and some other keys, when a selection |
650 |
|
exists, will kill the whole selection. It also enables Transient Mark |
651 |
|
mode (@pxref{Transient Mark}). |
652 |
|
|
653 |
|
|
654 |
@ifnottex |
@ifnottex |
655 |
@lowersections |
@lowersections |
656 |
@end ifnottex |
@end ifnottex |