Alt+Backspace は端末で動作しますが、これにより誤って Alt+Delete を試してから~
実際に何が起こっているのでしょうか。
答え1
認識できないスキャンコードの残り。
キーボードのボタンは、どのボタンが押されたかを示すために1つ以上のバイトを送信します。これらのバイトはキーボードドライバによって一部変換され、最終的にアプリケーション(この場合は端末)によってキャプチャされます。アプリケーションは、このバイトセットがどのショートカットかを識別し、適切なアクションを実行します。アプリケーションは、認識されない場合、これらの文字列を無視することがよくあります。そうしないと、「奇妙な動作」が発生する可能性があります。
どのボタンまたはボタンの組み合わせを実行してどのバイトを取得できるかを調べますcat /dev/tty
。ドライバがそれをアプリケーションに報告すると、各ボタンのシンボルセットが印刷されます。
特定のボタンの組み合わせに対してどのシンボルの組み合わせが送信されるかを知ったら、アプリケーションの設定ファイルに移動してそれを追加したり、アプリケーションに別のショートカット文字セットが必要な場合は変更できます。
歴史を通して、異なるキーボードを使用する様々な物理端末のために、論理的に同じキーに対して可能なスキャンコードの多くの変形がある。だからデータベースがterminfo
誕生しました。実際の端末(物理端末)について多くを知っており、どのキーの組み合わせに対してどの文字列を送信するかを知っています。端末に新しいショートカットを教えるには、独自のterminfoエントリを作成し、TERM
環境変数を使用して選択する必要があります。
単一のシンボルのみが表示されるという事実は、~
現在の端末と現在の用語がキーボードドライバが端末に送信する部分文字列を何らかの形で認識して処理し、残りのシーケンスを印刷することを意味します。