vim 退格键无法正常工作

vim 退格键无法正常工作

关键是在和 中Backspace没有按预期工作。它作为键工作,删除键正在删除字符,但相反发生了一些奇怪的事情。但是,现在我正在努力让钥匙正常工作。vimviDeleteBackspace

我通过谷歌搜索和搜索 unix.se 尝试了一些解决方案,但没有任何帮助。我尝试添加

:map~ ^? ^H

归档.exrc。还尝试添加以下功能这个链接,后来映射了给定的正确的键序列,但即使这样也无助于解决问题。

func Backspace()
  if col('.') == 1
    if line('.')  != 1
      return  "\<ESC>kA\<Del>"
    else
      return ""
    endif
  else
    return "\<Left>\<Del>"
  endif
endfunc

vim细节

VIM - Vi IMproved 7.0 (2006 May 7, compiled Jun 12 2009 07:09:20)

机器

$ cat /etc/*release
Red Hat Enterprise Linux Server release 5.5 (Tikanga)

笔记:

  1. 我使用 putty 连接管理器连接到远程 UNIX 机器。
  2. Shift+ 的Backspace作用与普通Backspace键的作用相同,即删除左侧的字符。

答案1

您是否尝试过设置退格模式?查看:help bs并尝试以下操作:

set bs=indent,eol,start

该帮助部分中还有一条关于使用:fixdel“如果您的 <BS> 或 <Del> 键不能执行您想要的操作”的注释。

您可能还需要设置“不兼容”(WRT 到 vi),因此:set nocp.

答案2

除了 Gert 对 PuTTY 的评论之外,第三篇文章这个线程还有一个关于 PuTTY 设置的注释:

在“终端”->“键盘”部分下,有一个标记为“更改发送者的序列:”的块 - 第一个是退格键。它应该是 Control-H 或 Control-?。将其更改为与当前设置相反的值,它应该可以工作。

答案3

金凤花姑娘的答案有帮助,按照他所示设置配置后,我按照以下步骤解决了问题 -

将 xterm设置TERM

$ TERM=xterm; export TERM

然后将以下内容添加到.bashrc文件中。

stty erase ^H

相关内容