Enviando as teclas de função (F1-F12) pelo SSH

10

Eu tenho uma máquina do Fedora que eu posso usar SSH. Um dos programas que eu gostaria de usar ocasionalmente usa as teclas de função. O problema é que eu sou SSH'ing de um tablet Android (ASUS Transformer Infinity) com um teclado físico, mas sem chaves F1 - F12 . Então, até que o aplicativo terminal que estou usando (VX ConnectBot) decida adicioná-los como um recurso, estou procurando uma maneira de enviá-los usando o resto do teclado.

Posso usar todos os caracteres ASCII imprimíveis, Esc , Ctrl , Deslocamento , Inserir e Separador .

    
por Sizik 01.11.2012 / 21:07

2 respostas

19

Os terminais só entendem caracteres, não chaves. Assim, todas as teclas de função são codificadas como seqüências de caracteres, usando caracteres de controle. Além de alguns comuns que possuem um caractere de controle associado ( Tab é Ctrl+I , Enter é Ctrl+M , Esc é Ctrl+[ ), teclas de função enviam seqüências de escape, começando com Ctrl+[ [ ou Ctrl+[ O . Você pode usar o comando tput para ver quais aplicativos de seqüência de escape esperam para cada tecla de função seu terminal. Essas sequências são armazenadas no banco de dados terminfo . Por exemplo, o fragmento de shell abaixo mostra as seqüências de escape correspondentes a cada tecla de função.

$ 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~

Outra maneira de ver a seqüência de escape para uma tecla de função é pressionar Ctrl + V em um aplicativo de terminal que não liga o Ctrl + V chave (como o shell). Ctrl + V insere o próximo caractere (que será o caractere de escape) literalmente, e você poderá ver o resto da sequência, que consiste em caracteres comuns .

Como as sequências podem ser difíceis de digitar, investigue alterando as associações de teclas em seu aplicativo ou usando outro emulador de terminal. Além disso, observe que você pode ter um limite de tempo: alguns aplicativos reconhecem apenas seqüências de escape se eles chegarem rápido o suficiente, para que possam dar um significado à chave Esc sozinha.

    
por 01.11.2012 / 23:52
3

O Android Terminal Emulator de Jack Palevich usa combinações de teclas com as teclas de volume para enviar uma variedade de teclas, incluindo teclas de função. Há também o Teclado do Hacker, que tem todas as teclas disponíveis que um teclado real teria.

    
por 01.11.2012 / 21:55