
答え1
簡単に言えば可能ですが、.inputrc
バインディングほど複雑です。
Long:コメントで提案されているようにできる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は文字列全体を取得します)。