elisp: The Kill Ring

 
 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.
 

Menu