Bashを使用すると、tput cup 0 0; read -e -p "Enter input: " userinput
ユーザー入力行を取得するのがうまく機能します。
- プロンプトの下の画面は消去されません。
- ユーザーは矢印キーを使用して行の中央に移動し、入力中に間違いを編集できます。
zshでこれを達成するには?私は2つのスキルを試しました。プロンプトの下の画面を消去したり、矢印を使用して編集のために行の中央に戻ることはできません。
- 使用
vared
:
tput cup 0 0; userinput=""; vared -p "Enter input: " userinput
vared
プロンプトの下の画面を消去するように見えるため、プロンプトを表示する前に画面全体が消去されます。
- 使用
read
:
tput cup 0 0; printf "Enter input: "; read -r userinput
これはプロンプトの下の画面を消去しませんが、矢印キーを使用して行の中央に移動して編集することはできません。 (「削除」キーは機能しますが、ユーザーはその時点からすべてを削除して再入力する必要があります(タイプミス)。
脱出口はありますか?たぶん下に行がないとvaredをだまして、1行(プロンプト行)だけを消去することができます。 zshで可能でない場合は、画面の最初の行でユーザー入力を取得する外部POSIX方式を使用したいと思います。