我正在使用在 gnome 终端内运行的 picocom。我使用 -e 选项在 picocom 内部打开了本地回显,当我退格时,我可以看到插入符号向后移动,但是之前打印的字符仍然保留在原处。我查看了 picocom 中的 emap 选项,它允许在回显到终端之前将 BS 映射到 DEL,反之亦然,但这没有达到预期的效果。
如何配置 gnome-terminal 和/或 picocom 以在按退格键时从终端中删除字符?
答案1
我对 picocom 不熟悉,所以我不能给你答案,但可以给你一个你可能觉得有用的行为的解释。
使用终端时,输入(键盘)和输出(发送到终端进行打印的内容)必须清楚地区分。
至于输入,键盘的退格键发送 ^H (ascii 0x08) 或 ^? (ascii 0x7F) 取决于某些设置。
至于输出: ^H 将光标向左移动(不删除任何内容),而 ^?是一个空操作(或者可能是未定义的)。
每当您按下退格键并且它“按预期工作”时,在幕后有人(例如您的 shell 或内核的 tty 层)会翻译传入的 ^H 或 ^?进入输出序列:^H 后跟一个空格,后跟另一个 ^H。
我认为 picocom 不会做这样的翻译。