On some systems, you may experience problems using the backspace or delete keys. This tip discusses the causes and solutions. Generally, these problems arise on Unix-based systems because of the wide variety of hardware and software involved.
TO DO
- Following is a rough merge from some mysterious tips.
- Need to reword and clarify what each is talking about.
Backspace key won't move from current line
Backspace works in Insert mode (e.g. not inserting a ^?), but won't delete over line breaks, or automatically-inserted indentation, or the place where insert mode started:
set backspace=2 " make backspace work like most other apps
Alternately, add this to your .vimrc:
set backspace=indent,eol,start
Strange characters are inserted
Backspace just puts weird characters in my file.
See :help :fixdel.
There's also a bug in xterm (at least v224) that may bring other users into the same backspace problem. Here's the link: http://bugs.gentoo.org/show_bug.cgi?id=154090.
Well your Fucked
Checking for bad mappings
Your backspace key may be broken due to a bad mapping which has been loaded into Vim. This may be unintentional; Vim sees CTRL-H as a backspace (because CTRL-H is the ASCII code for a backspace), so you also cannot map anything to that. You can check if there are any mappings set, and where they came from, like this:
:verbose imap <BS> " show insert-mode mapping for Backspace key or :verbose imap ^H " insert this with Ctrl+V then Ctrl+H
If you find a mapping you can try clearing it with:
:iunmap <BS> " remove insert-mode mapping for Backspace key
If you want to create your own emergency mapping, you could try:
:imap ^H <Left><Del> " map Ctrl+H to move left and delete the char
If you want an even more authentic mapping for a malfunctioning Backspace key, try this function:
func Backspace() if col('.') == 1 if line('.') != 1 return "\<ESC>kA\<Del>" else return "" endif else return "\<Left>\<Del>" endif endfunc
And add put this mapping into your .vimrc:
inoremap <BS> <c-r>=Backspace()<CR>
See also
- Fix broken arrow key navigation in insert mode cursor key problems
Comments
Might want to add following info somewhere in tip:
On many Linux systems, running in an xterm window:
- Backspace key emits <BS> (8 or ^H)
- Ctrl-Backspace key combination emits <Del> (127 or ^?)