Las terminales solo entienden caracteres, no claves. Entonces, todas las teclas de función se codifican como secuencias de caracteres, utilizando caracteres de control. Además de unos pocos comunes que tienen un carácter de control asociado ( Tabes Ctrl+I
, Enteres Ctrl+M
, Esces Ctrl+[
), las teclas de función envían secuencias de escape, comenzando con Ctrl+[ [
o Ctrl+[ O
. Puede usar el tput
comando para ver qué aplicaciones de secuencia de escape esperan para cada tecla de función en su terminal. Estas secuencias se almacenan en la terminfo
base de datos. Por ejemplo, el fragmento de shell a continuación muestra las secuencias de escape correspondientes a cada tecla de función.
$ 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~
Otra forma de ver la secuencia de escape para una tecla de función es presionar Ctrl+ Ven una aplicación de terminal que no vuelve a vincular la tecla Ctrl+ V(como el shell). Ctrl+ Vinserta el siguiente carácter (que será el carácter de escape) literalmente, y podrá ver el resto de la secuencia, que consta de caracteres ordinarios.
Debido a que las secuencias pueden ser difíciles de escribir, investigue si cambia las asociaciones de teclas en su aplicación o usa otro emulador de terminal. Además, tenga en cuenta que puede tener un límite de tiempo: algunas aplicaciones solo reconocen las secuencias de escape si entran lo suficientemente rápido, de modo que puedan dar un significado solo a la Escclave.