答案1
简而言之:这是可能的,但作为.inputrc
绑定很复杂。
长:正如评论中所建议的,你可以在 bash 提示符和 readline 绑定中执行类似的操作。
保存/恢复光标将是无效的,因为您能够可靠地清除屏幕其余部分的唯一点是按下Enter以完成选择。
一旦您将控制权传递给accept-line
,再清除屏幕的其余部分就为时已晚。可以(但复杂)定义一系列真实且临时的“键绑定”以使 readline 执行多个操作。参见示例
但这种方法限制您向 bash 发送字符并向 readline 发出命令。没有任何 readline 命令执行此操作
printf '\033[J'
清除余屏幕的。最接近的是 readline 的内置clear-screen
(不是你想要什么)。你的绑定必须做类似的事情
beginning-of-line
- 插入 ”
printf '\033[J';
” end-of-line
accept-line
这end-of-line
可以解决 readline 的一个怪癖。它允许您按Enter 任何地方在线上。如果您的光标位于该行的中间,则您只会看到输入的一部分(尽管 bash 会获取整个字符串)。