読み取りプロンプトで戻る矢印、終了、およびホームキーを処理する方法

読み取りプロンプトで戻る矢印、終了、およびホームキーを処理する方法

を使用しreadて `単語の後に左矢印を入力すると、次のようになります。

 $ read
 word^[[D

それぞれにつながるとキーの場合も同様ですHomeEnd^[[H^[[F

左矢印 ` を使ってそれぞれと書き込んだ内容の先頭と最後から後ろに移動するには、これらの文字をどのように処理する必要がありますか?HomeEnd

ベストアンサー1

readlineライブラリは通常これを処理し、inputrcどのコードが解放されたかを伝えます。シェルをインタラクティブモードで強制すると、これらの機能が有効になります。cursesカーソル移動を完全にサポートするライブラリです(テキストエディタなどが必要な場合)。

しかし、最終的にターミナルは次のようなことを覚えておく必要があります。送信者そして受話器入出力。したがって、カーソルを移動する制御シーケンスを印刷するときは、いつでも画面上のどこにでも書き込むことができるようにカーソルを移動する必要があります。端末は応答する制御順序が異なりますが、次の点を確認してください。これ参考用。

おすすめ記事