当我在本地计算机(Mac OS X Snow Leopard)的终端中使用VIM时,删除键实际上是退格键(即破坏性退格键)。
当我通过SSH连接到特定服务器时,由于某种原因它会被定期删除(即删除光标下的字符)。
如何将其更改为一致?我已经尝试了十几种解决方案,但似乎没有任何效果。
检查“终端首选项” - >“高级”中的“删除发送Ctrl-H”框不起作用 - 这是非破坏性退格。
我在VIM中尝试了大约一百个不同的键映射,但无济于事。
有趣的是,当我在VIM中键入命令时,键会按预期工作(例如,: <something>
) - 当我编辑实际文本时,它只会被搞砸。有什么想法吗?
答案 0 :(得分:16)
这对我有用:
:set backspace=indent,eol,start
我不确切知道它的作用,但它被列为可能的解决方案here和here。我在与Ubuntu一起分发的vimrc文件中找到了这一行,其中mac的行为是&#34; delete&#34;密钥(也称为&#34;退格&#34;密钥)按预期工作,无需任何其他配置。
当我按下mac&#34;删除&#34;时,我遇到的行为是铃声(没有删除字符)。插入模式下的密钥(也称为&#34;退格&#34;密钥)。我在#34; amazon linux&#34;上使用了vim 7.3的编译版本。来自mac的ssh。在插入模式下按<ctrl-v><delete>
会导致^?。
答案 1 :(得分:7)
尝试一些想法:
在远程服务器上的.vimrc
文件中,添加以下行:
set term=linux
在远程服务器上的.bash_profile
文件(或与您选择的shell对应的任何文件)中:
stty erase ^H
注意:要使其正常工作,您必须键入 ctrl - v ,然后 ctrl - h 输入^H
字符。
此外,请确保在终端首选项中选中“删除发送Ctrl-H”。
答案 2 :(得分:3)
试试这个:http://www.alecjacobson.com/weblog/?p=295
我通过更改Terminal.app设置来解决问题。在终端&gt;首选项选择高级。选中“删除发送Ctrl-H”。现在,vi和vim应该更直观地理解删除键。
注意:映射我的vimrc文件中的“delete”键似乎可能是正确的方法,但这很麻烦。有没有理由不这样做?
答案 3 :(得分:2)
尝试添加
set <Del>=<C-v><Del>
到目标机器上的vimrc。在此处,您必须在登录目标计算机时键入&lt; C-v&gt; &lt; Del&gt; 。如果这不起作用,请检查verbose imap <Del>
:这应该告诉您某些插件是否在插入模式下重新映射<Del>
。