ルータのビジボックスシェルでカーソルを左右に移動する方法

ルータのビジボックスシェルでカーソルを左右に移動する方法

私のルータはasuswrt merlinを実行しています。 /bin/sh は BusyBox v1.25.1(2017-12-02 00:49:46 EST) マルチコールバイナリにパッケージされています。

私の質問は、カーソルを1単語ずつ左右に移動できますか?

Bashを使用すると、ターミナルでそれぞれマッピングされているoption+leftものを実行できます。 option+right\033b\033f

私のルーターケースでは、abと.のみが印刷されますf。では、シェルからショートカットを再マップするにはどうすればよいですか?それともすでに作られたショートカットはありますか?

注 1: シェルをbusyboxカプセル化することになっているので、私の質問はシェルでカーソルを 1 ワードずつ移動する方法かもしれません。ashash

注2:Meta + bとMeta + Fを使用するために、次のオプションを有効または無効にしようとしましたが、成功しませんでした。

オプションをメタキーとして使用

注 3: apple タグと ash タグの追加

答え1

Meta-FMeta- はBそれぞれカーソルを前後に移動します。

キーが正しく転送されない端末または接続チェーンにある場合(Metaあなたの場合と同様)、これは次のEsc文字が送信した信号が変更されたキーストロークを意味しますMeta。したがって、を押して放した後、またはをEsc押しFB文字通りリモート端末から前後に移動します。

つまり、私が扱っているコマンドラインが適切に設定できるほど複雑で、 -CtrlまたはA- 、 - よりCtrl複雑なものが必要な場合は、一般的に設定でEこの機能をオンにします。EDITORCtrlXCtrlE

答え2

JdeBPが言ったように、BusyBoxはreadlineを使用しません。そのキーマップはファイルにハードコードされているread_key.cと解釈されます。これは、とが無効であることをlineedit.c意味します。~/.inputrc/etc/inputrctermcapterminfov1.25マッピング -arrow/ -arrow のあいまいな xterm 変形に対応する or で単語の左をESC[1;5DorESC[1;3Dで単語の右をハードコーディングします。ESC[1;5CESC[1;3CCtrlAltv1.26戻る/進む単語に追加され、通常は- / -ESC-b/ESC-fにマップされます。AltbAltf

関連情報