vim退格键留下^?

75

在Vim中,当我在插入模式下按下退格键时,它会留下^?字符,并且不会删除它应该删除的字符。

我的.vimrc中有以下内容:

syntax on
set number
set expandtab
set incsearch
set nocompatible
set backspace=indent,eol,start
fixdel

即使在命令模式下也会出现这种情况。当我错误地键入 W 而不是 w 进行保存时,我按下 退格 键,它会给我以下提示:

:W^?
有什么想法,怎么修复?更新:在将这个问题发布到stackoverflow之前,我已经进行了基本的谷歌搜索,并尝试了搜索结果第一页的所有建议,但是都没有成功。@strcat 我正在使用vim版本7.0.237,KDE控制台1.6.4,Linux 2.6.18 x86_64机器。@graywh 关于cat -v,对于删除,我得到^[[3〜,对于退格,我得到^?。stty-a的输出如下.
speed 38400 baud; rows 38; columns 194; line = 0;
intr = ^C; quit = ^\; erase = ^H; kill = ^U; eof = ^D; eol = <undef>; eol2 = <undef>; swtch = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W; lnext = ^V; flush = ^O;
min = 1; time = 0;
-parenb -parodd cs8 -hupcl -cstopb cread -clocal -crtscts -cdtrdsr
-ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl -ixon -ixoff -iuclc -ixany -imaxbel iutf8
opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0
isig icanon iexten echo echoe echok -echonl -noflsh -xcase -tostop -echoprt echoctl echoke

请查看以下链接以帮助调试您的问题:> http://vim.wikia.com/wiki/Backspace_and_delete_problems 编辑:我找到了一个与您描述的问题类似的问题:> http://lj4newbies.blogspot.com/2007/05/backspace-and-delete-keys-problem-in.html - Bogdan Emil Mariesan
抱歉,我尝试了那个但是不起作用! - Sangeeth Saravanaraj
我已经更新了我的帖子,加入了一些新的提示,请再次查看。 - Bogdan Emil Mariesan
3
你使用哪个终端/操作系统? - strcat
我之前在MacOS上使用iterm时遇到了这个问题。现在我正在尝试通过ssh连接到一个远程的Solaris主机来解决这个问题,但是在尝试修复的过程中,问题现在出现在本地的iterm上了。 - undefined
显示剩余4条评论
16个回答

2

这对我也起作用了。简单明了。唯一的问题是,我将更改放在全局vim配置下的*/etc/vimrc*中(使用sudo编辑)。 - Avrdan

0

我遇到了这个问题,并在我的 .vimrc 文件中找到了以下设置:

:set t_kb=^H

删除那行代码解决了问题。


0

0

在FreeBSD中使用CSH,您应该在您的.cshrc文件中替换这个:

bindkey "^W" backward-delete-word

用这个:

bindkey "^?" backward-delete-word

0

对于 macOS Big Sur,fn+backspace 对我有效。


0
我在使用Putty终端中运行vi时遇到了类似的问题。通过更改Putty的设置,我解决了这个问题。
change settings > Terminal > Keyboard > The Backspace Key (select Control-H)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接