如何通过ssh修复VIM中的删除键? (Mac OS X)

时间:2010-11-11 19:13:17

标签: macos osx-snow-leopard vim backspace

当我在本地计算机(Mac OS X Snow Leopard)的终端中使用VIM时,删除键实际上是退格键(即破坏性退格键)。

当我通过SSH连接到特定服务器时,由于某种原因它会被定期删除(即删除光标下的字符)。

如何将其更改为一致?我已经尝试了十几种解决方案,但似乎没有任何效果。

检查“终端首选项” - >“高级”中的“删除发送Ctrl-H”框不起作用 - 这是非破坏性退格。

我在VIM中尝试了大约一百个不同的键映射,但无济于事。

有趣的是,当我在VIM中键入命令时,键会按预期工作(例如,: <something>) - 当我编辑实际文本时,它只会被搞砸。有什么想法吗?

4 个答案:

答案 0 :(得分:16)

这对我有用:

:set backspace=indent,eol,start

我不确切知道它的作用,但它被列为可能的解决方案herehere。我在与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>