31.8 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.
See 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.