Bash,如何全局修复 ^H 和 ^?退格问题

fra*_*rth 15 linux terminal bash shell bashrc

我想解决这个常见问题,远程服务器上的 shell 认为我的终端的退格键是^?,有时它认为是^H,并且碰巧不正确并在我按下退格键时输出错误的字符。如果我将其设置为 ^H 或 ^?用stty erase ^Hstty erase ^?在我的.bashrc文件,并使用一些其他的终端访问服务器,它往往最终是错误的。所以stty erase [whatever]当我发现退格键错误时,我不得不手动输入来修复它。

我想要做的是同时绑定^?^H退格,因为如果我能做到这一点,我可以将它添加到我所有的 .bashrc 文件中,它肯定会结束这场噩梦。这可能吗?如果是这样,如何?

ter*_*don 9

此页面包含有关此问题的所有信息;我建议你阅读它。现在,如果您正在使用bash,那么创建一个~/.inputrc包含以下行的文件就足够了:

"\e[3~": delete-char
# this is actually equivalent to "\C-?": delete-char
# VT
"\e[1~": beginning-of-line
"\e[4~": end-of-line
# kvt
"\e[H":beginning-of-line
"\e[F":end-of-line
# rxvt and konsole (i.e. the KDE-app...)
"\e[7~":beginning-of-line
"\e[8~":end-of-line
Run Code Online (Sandbox Code Playgroud)

作为额外的奖励,他们也会制作HomeEnd工作。