Most commands that erase text from the buffer save it. You can get the text back if you change your mind, or you can move or copy it to other parts of the buffer. Commands which erase text and save it in the kill ring are known as kill commands. Some other commands erase text but do not save it; they are known as delete commands. (This distinction is made only for erasing text in the buffer.)
The commands’ names and individual descriptions use the words
‘kill’ and ‘delete’ to indicate what they do. If you perform
a kill or delete command by mistake, use the C-x u (
command to undo it (see Undo). The delete commands include C-d
delete-char) and DEL (
delete only one character at a time, and those commands that delete only
spaces or newlines. Commands that can destroy significant amounts of
nontrivial data usually kill.
Delete next character (
Delete previous character (
Delete spaces and tabs around point (
Delete spaces and tabs around point, leaving one space
Delete blank lines around the current line (
Join two lines by deleting the intervening newline, and any indentation
following it (
The most basic delete commands are C-d (
delete-backward-char). C-d deletes the
character after point, the one the cursor is “on top of”. Point
doesn’t move. DEL deletes the character before the cursor, and
moves point back. You can delete newlines like any other characters in
the buffer; deleting a newline joins two lines. Actually, C-d and
DEL aren’t always delete commands; if you give them an argument,
they kill instead, since they can erase more than one character this
The other delete commands delete only formatting characters: spaces,
tabs and newlines. M-\ (
all spaces and tab characters before and after point.
just-one-space) does the same but leaves a
single space after point, regardless of the number of spaces that
existed previously (even zero).
C-x C-o (
delete-blank-lines) deletes all blank lines after
the current line. If the current line is blank, it deletes all blank lines
preceding the current line as well as leaving one blank line, the current
line. M-^ (
delete-indentation) joins the current line and
the previous line, or, if given an argument, joins the current line and
the next line by deleting a newline and all surrounding spaces, possibly
leaving a single space. See M-^.
Kill rest of line or one or more lines (
The simplest kill command is C-k. If given at the beginning of a line, it kills all the text on the line, leaving the line blank. If given on a blank line, the blank line disappears. As a consequence, a line disappears completely if you go to the front of a non-blank line and type C-k twice.
More generally, C-k kills from point up to the end of the line, unless it is at the end of a line. In that case, it kills the newline following the line, thus merging the next line into the current one. Emacs ignores invisible spaces and tabs at the end of the line when deciding which case applies: if point appears to be at the end of the line, you can be sure the newline will be killed.
If you give C-k a positive argument, it kills that many lines and the newlines that follow them (however, text on the current line before point is not killed). With a negative argument, C-k kills back to a number of line beginnings. An argument of -2 means kill back to the second line beginning. If point is at the beginning of a line, that line beginning doesn’t count, so C-u - 2 C-k with point at the front of a line kills the two previous lines.
C-k with an argument of zero kills all the text before point on the current line.
Kill region (from point to the mark) (
Kill word (
Kill word backwards (
Kill back to beginning of sentence (
Kill to end of sentence (
Kill sexp (
kill-sexp). See Lists.
Kill up to next occurrence of char (
kill-region) is a very general kill command; it
kills everything between point and the mark. You can use this command to
kill any contiguous sequence of characters by first setting the mark at
one end of a sequence of characters, then going to the other end and
A convenient way of killing is combined with searching: M-z
zap-to-char) reads a character and kills from point up to (but not
including) the next occurrence of that character in the buffer. If there
is no next occurrence, killing goes to the end of the buffer. A numeric
argument acts as a repeat count. A negative argument means to search
backward and kill text before point.
Other syntactic units can be killed: words, with M-DEL and M-d (see Words); sexps, with C-M-k (see Lists); and sentences, with C-x DEL and M-k (see Sentences).