如何让Backspace在Vim中发送^ H?

时间:2019-01-16 03:11:52

标签: bash vim archlinux xterm

我有一个问题,就是我的退格键可以在终端中工作,而不能在Vim中工作。它发送了'^?'而不是'^H',而我一直在努力弄清楚。我已经检查过.bashrc,并且有stty erase '^?'可以删除'^?',但是不知何故。

我的.vimrc中有这个文件:

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

这是我通常根据我的知识将其解决的方法,但在这种情况下不起作用。如果有帮助,我正在Arch Linux服务器上使用xterm,我知道xterm有一个错误,但我认为并非如此。它可以在Unix命令中运行,但不能在Vim中运行,因此只能在不起作用的Vim中运行。

非常感谢您的帮助。

编辑: 嗯,我只是想让我的退格键删除东西。我的退格键不会立即删除内容,而是给我^?而不是删除。删除与其他任何^ H系统相同,但是我想让退格键发送^ H而不是删除^^。因此,我不必键入^ H来删除,而是要使用退格键,在MobaXterm上有一个函数使退格键发送^ H。但是如何在SSH上做到这一点?

谢谢

1 个答案:

答案 0 :(得分:1)

有两种方法。在左侧,您看到了渴望的control-H字符。这种方式的路径似乎很清楚,只是一点点

echo xterm.vt100.backarrowKey: true >> ~/.Xresources; xrdb ~/.Xresources

然后重新启动所有xterm,或者在每个窗口上按Control和鼠标主键以显示菜单,您可以在每个窗口中进行更改。菜单项本身是第三部分的第二项,就在8位控件选项下。这样看来是可行的。除非提防,否则在Control-H本身下方有一个活板门,因此,除bash本身外,backspace停止在其他所有位置正常工作。当然,您已经有了自己的风格,已经走出了迷宫的一部分。但我有点想起了该路径遇到的其他各种问题。其中之一是Linux控制台也使用^?而不是^ H,而且更改起来并不容易。

或者,另一种方法是使用^?使vim能够执行您想要的操作。我认为只是

:map ^V^? x

请注意,我的意思是Control-V退格键,而不是插入符号V插入符号的问题。如果满足您的需要,您还希望将其添加到〜/ .vimrc中。话虽这么说,但您并没有确切说出vim在哪里运行不正确,因此您可能需要进行其他调整。