每当我在 VIM 中输入退格键时,编辑器都会插入^?
.我已经编辑.vimrc
了set backspace=indent,eol,start
但没有成功。set backspace=2
也没起作用。
我读到您需要编辑 /etc/X11/... 中的 XTerm 文件,但该文件夹和文件不存在。
这不是重复的,因为我已经尝试过之前建议的解决方案,但它不起作用。
答案1
/etc/X11/app-defaults/XTerm
可以进行编辑,但如果您没有该文件,则可能您正在使用不同的终端。
问题不在于您在 中使用的设置vim
,而是终端描述和终端在“退格键”发送的内容上不一致。
通常“退格”与值相同stty erase
,您可以使用 看到它stty -a
,例如,
~ (101) stty -a
speed 38400 baud; rows 40; columns 80; 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
-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
如果stty
显示^H
并且终端实际发送^?
(ASCII DEL 或 127),则vim
可能会感到困惑。
在 vim 的帮助文件中,它声称如果你把
:fixdel
在你的.vimrc
,它能够做正确的事:
:fix[del] Set the value of 't_kD':
't_kb' is 't_kD' becomes ~
CTRL-? CTRL-H
not CTRL-? CTRL-?
(CTRL-? is 0177 octal, 0x7f hex) {not in Vi}
If your delete key terminal code is wrong, but the
code for backspace is alright, you can put this in
your .vimrc:
:fixdel
This works no matter what the actual code for
backspace is.