我有 bash 和配置文件的配置,但我将该文件复制到其他服务器,所以现在我无法仅通过按退格键来删除文本,我需要按 Shift + Backspace 来删除文本。
我需要更改什么参数才能恢复它?
答案1
一般情况下(取决于惯例对于您正在使用的特定系统),该backspace键发送 ASCII BS ( ^H
) 和 DEL ( ^?
)
当您使用移位修饰符时,某些终端仿真器会在 ASCII BS ( ^H
) 和 DEL ( ) 之间切换。^?
有些则不然。显然您用于 ssh 的程序没有。
鉴于您的这一行.profile
:
stty erase "^H" kill "^U" intr "^C" eof "^D" susp "^Z"
看起来你的终端通常会发送^?
(ASCII DEL),但你告诉它期待^H
(ASCII BS)。但是,^H
当您backspace使用该键进行修改时,您的终端会切换到shift。你本来可以用
stty erase "^?" kill "^U" intr "^C" eof "^D" susp "^Z"
并取得了更好的结果。
答案2
答案3
另一种可能性是 terminfo 数据丢失。这在我使用 chroot 时发生过。这论坛帖子帮助我解决了这个问题,但我在 Stackexchange 上找不到类似的有效参考,所以就在这里。
将目录 /usr/share/terminfo/ 复制到 chroot 目录的 /usr/share/terminfo 就足够了。