1

可能重复:
vim 退格离开 ^?

我的 VimBackspace工作不正常。当我按下它时,它会打印出来^?。我发现了一些关于如何修复它的其他建议,例如添加set backspace=indent,eol,start到 .vimrc。但这似乎无法正常工作。有没有人对如何解决这个问题有任何其他想法?

谢谢!

4

2 回答 2

8

perreal 的回答告诉您如何更改 Linux 控制台以匹配 vim 的当前设置,但您也可以选择更改 vim 的设置以匹配 Linux 控制台。相关的选项是t_kbt_kD告诉 vim 当你分别按下 Backspace 和 Delete 键时终端会生成什么字符。首先查询当前设置,以便查看它们的设置:

:set t_kb? t_kD?

然后像这样改变它们:

:set t_kb=XXX t_kD=XXX

代替 XXX,您应该键入Ctrl-V后跟Backspace第一个,然后Ctrl-V后跟Del第二个。

您可能会问另一个问题,关于为什么一开始没有正确检测到这些设置。如果您有兴趣对此进行调查,我们需要查看您的$TERM变量和相应的 terminfo 数据库条目,您可以通过以下方式获得:

echo $TERM
infocmp | egrep 'kdch1|kbs'
于 2012-07-26T17:56:46.187 回答
3

来自 vim-docs :help fixdel

关于 Linux 的注意事项:默认情况下,退格键产生 CTRL-?,这是错误的。您可以通过将此行放入 rc.local 中来修复它:

echo "keycode 14 = BackSpace" | loadkeys

于 2012-07-26T16:50:50.947 回答