Wiki: Fix Backspace


Backspace works, but won't go up or down a line

set backspace=2 " make backspace work normal (non-vi style)
set whichwrap+=<,>,h,l  " backspace and cursor keys wrap to next/prev lines

Backspace just puts weird chars in my file

This is all from :help fixdel (vims help is amazing)

:~fix[del]              Set the value of 't_kD':
                                't_kb' is     't_kD' becomes    ~
                                  CTRL-?        CTRL-H
                                not CTRL-?      CTRL-?

                        (CTRL-? is 0177 octal, 0x7f hex) {not in Vi}

                        If your delete key terminal code is wrong, but the
                        code for backspace is alright, you can put this in
                        your .vimrc:
                                :fixdel
                        This works no matter what the actual code for
                        backspace is.

                        If the backspace key terminal code is wrong you can
                        use this:
                                :if &term == "termname"
                                :  set t_kb=^V<BS>
                                :  fixdel
                                :endif
                        Where "^V" is CTRL-V and "<BS>" is the backspace key
                        (don't type four characters!).  Replace "termname"
                        with your terminal name.

                        If your <Delete> key sends a strange key sequence (not
                        CTRL-? or CTRL-H) you cannot use ":fixdel".  Then use:
                                :if &term == "termname"
                                :  set t_kD=^V<Delete>
                                :endif
                        Where "^V" is CTRL-V and "<Delete>" is the delete key
                        (don't type eight characters!).  Replace "termname"
                        with your terminal name.

                                                        *Linux-backspace*
                        Note about Linux: By default the backspace key
                        produces CTRL-?, which is wrong.  You can fix it by
                        putting this line in your rc.local:
                                echo "keycode 14 = BackSpace" | loadkeys

                                                        *NetBSD-backspace*
                        Note about NetBSD: If your backspace doesn't produce
                        the right code, try this:
                                xmodmap -e "keycode 22 = BackSpace"
                        If this works, add this in your .Xmodmap file:
                                keysym 22 = BackSpace
                        You need to restart for this to take effect.

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. The information there should be moved into this wiki, but that requires more effort than adding the link.


Copyright © 2007 RobertMelton.com