vi退格打印^?在插入模式下

时间:2013-06-10 15:07:49

标签: vim vi

我使用vi,当我处于插入模式时,它将打印^?而不是实际删除文本。

我提到了这个vim backspace leaves ^?,但它并没有解决我的问题。

我在/ u / myname目录中创建了.vimrc文件 .vimrc是否需要在某个位置?

在.vimrc中,我有

set backspace=2
set backspace=indent,eol,start

.vimrc文件需要什么?

1 个答案:

答案 0 :(得分:6)

尝试以下一些修复方法。这来自:fixdel帮助。

                            *:fix* *:fixdel*
: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.

如果这样做,只需将fixdel添加到您的vimrc。