答案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 會取得整個字串)。