端末はキーではなく文字のみを認識します。したがって、すべてのファンクションキーは、制御文字を使用して文字のシーケンスとしてエンコードされます。制御文字(Tabis Ctrl+I
、Enteris Ctrl+M
、Escis Ctrl+[
)が関連付けられているいくつかの一般的なものとは別に、ファンクションキーはCtrl+[ [
またはで始まるエスケープシーケンスを送信しますCtrl+[ O
。このtput
コマンドを使用して、端末の各ファンクションキーに必要なエスケープシーケンスアプリケーションを確認できます。これらのシーケンスはterminfo
データベースに保存されます。たとえば、次のシェルスニペットは、各ファンクションキーに対応するエスケープシーケンスを示しています。
$ for x in {1..12}; do echo -n "F$x "; tput kf$x | cat -A; echo; done
F1 ^[OP
F2 ^[OQ
F3 ^[OR
F4 ^[OS
F5 ^[[15~
F6 ^[[17~
F7 ^[[18~
F8 ^[[19~
F9 ^[[20~
F10 ^[[21~
F11 ^[[23~
F12 ^[[24~
ファンクションキーのエスケープシーケンスを参照する別の方法は、プレスにあるCtrl+ V再バインドしない端末アプリケーションでCtrl+をV(例えばシェルなど)のキーを。Ctrl+ Vは、次の文字(エスケープ文字)を文字通りに挿入し、通常の文字で構成されるシーケンスの残りを見ることができます。
シーケンスは入力しにくい場合があるため、アプリケーションのキーバインドを変更するか、別のターミナルエミュレータを使用して調査してください。また、時間制限がある場合があることに注意してください。一部のアプリケーションは、エスケープシーケンスが十分な速さで入ってくる場合にのみ認識しEscます。