微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

vim退格离开^?

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

我在我的.vimrc中有以下

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

这也发生在命令模式。当我错误地键入W而不是w保存,我按退格键,它给我以下:

:W^?

任何想法什么是错的,如何解决它?

更新:在发布此问题到SO,我做了一个基本的google搜索,并尝试所有的建议,从搜索结果的第一页,但不成功。

@strcat我使用vim版本7.0.237,KDE控制台1.6.4,Linux 2.6.18 x86_64机器。

@graywh w.r.t 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
^?是删除字符;退格字符为^ H。只有其中一个被您的终端识别为“擦除”,这由终端设置stty确定。 (bash和其他shell理解这是一个问题,做特殊的事情来识别两者)

如果你的终端模拟器(ssh,putty,xterm,任何)不同意你的终端设置,那么你会看到这种行为。通常它是正确的认情况下,但很多时候人们会把stty命令在他们的.bashrc打破的东西。

你可能有一些像stty擦除^ H在你的bashrc。如果你这样做,摆脱它,或更改您的终端设置有退格发送^ H而不是DEL(^?)

你也可以通过vim映射来解决这个问题,但这是忽略了基本的问题。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐