The Kill Ring
=============
"Kill functions" delete text like the deletion functions, but save
it so that the user can reinsert it by "yanking". Most of these
functions have `kill-' in their name. By contrast, the functions whose
names start with `delete-' normally do not save text for yanking
(though they can still be undone); these are "deletion" functions.
Most of the kill commands are primarily for interactive use, and are
not described here. What we do describe are the functions provided for
use in writing such commands. You can use these functions to write
commands for killing text. When you need to delete text for internal
purposes within a Lisp function, you should normally use deletion
functions, so as not to disturb the kill ring contents. Note:Deletion.
Killed text is saved for later yanking in the "kill ring". This is
a list that holds a number of recent kills, not just the last text
kill. We call this a "ring" because yanking treats it as having
elements in a cyclic order. The list is kept in the variable
`kill-ring', and can be operated on with the usual functions for lists;
there are also specialized functions, described in this section, that
treat it as a ring.
Some people think this use of the word "kill" is unfortunate, since
it refers to operations that specifically _do not_ destroy the entities
"killed". This is in sharp contrast to ordinary life, in which death
is permanent and "killed" entities do not come back to life.
Therefore, other metaphors have been proposed. For example, the term
"cut ring" makes sense to people who, in pre-computer days, used
scissors and paste to cut up and rearrange manuscripts. However, it
would be difficult to change the terminology now.