Next: , Up: Killing


13.1 Deletion

Deletion means erasing text and not saving it in the kill ring. For the most part, the Emacs commands that delete text are those that erase just one character or only whitespace.

C-d
<Delete>
Delete next character (delete-char). If your keyboard has a <Delete> function key (usually located in the edit keypad), Emacs binds it to delete-char as well.
<DEL>
<BS>
Delete previous character (delete-backward-char). Some keyboards refer to this key as a “backspace key” and label it with a left arrow.
M-\
Delete spaces and tabs around point (delete-horizontal-space).
M-<SPC>
Delete spaces and tabs around point, leaving one space (just-one-space).
C-x C-o
Delete blank lines around the current line (delete-blank-lines).
M-^
Join two lines by deleting the intervening newline, along with any indentation following it (delete-indentation).

The most basic delete commands are C-d (delete-char) and <DEL> (delete-backward-char). C-d deletes the character after point, the one the cursor is “on top of.” This doesn't move point. <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; when given arguments, they kill instead, since they can erase more than one character this way.

Every keyboard has a large key, labeled <DEL>, <BACKSPACE>, <BS> or <DELETE>, which is a short distance above the <RET> or <ENTER> key and is normally used for erasing what you have typed. Regardless of the actual name on the key, in Emacs it is equivalent to <DEL>—or it should be.

Many keyboards (including standard PC keyboards) have a <BACKSPACE> key a short ways above <RET> or <ENTER>, and a <DELETE> key elsewhere. In that case, the <BACKSPACE> key is <DEL>, and the <DELETE> key is equivalent to C-d—or it should be.

Why do we say “or it should be”? When Emacs starts up using a window system, it determines automatically which key or keys should be equivalent to <DEL>. As a result, <BACKSPACE> and/or <DELETE> keys normally do the right things. But in some unusual cases Emacs gets the wrong information from the system. If these keys don't do what they ought to do, you need to tell Emacs which key to use for <DEL>. See DEL Does Not Delete, for how to do this.

On most text-only terminals, Emacs cannot tell which keys the keyboard really has, so it follows a uniform plan which may or may not fit your keyboard. The uniform plan is that the ASCII <DEL> character deletes, and the ASCII <BS> (backspace) character asks for help (it is the same as C-h). If this is not right for your keyboard, such as if you find that the key which ought to delete backwards enters Help instead, see DEL Does Not Delete.

The other delete commands are those which delete only whitespace characters: spaces, tabs and newlines. M-\ (delete-horizontal-space) deletes all the spaces and tab characters before and after point. M-<SPC> (just-one-space) does likewise but leaves a single space after point, regardless of the number of spaces that existed previously (even if there were none before). With a numeric argument n, it leaves n spaces after point.

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 (leaving one blank line, the current line). On a solitary blank line, it deletes that line.

M-^ (delete-indentation) joins the current line and the previous line, by deleting a newline and all surrounding spaces, usually leaving a single space. See M-^.