Sequências de escape para teclas de função (F1-F12), especialmente F11 e F12

1

Eu quero usar o multiplexador de terminal byobu , então eu preciso usar as teclas de função ( F1 - F12 ). No entanto, estou acessando uma máquina remota via SSH, portanto, preciso enviar as teclas de função por meio do SSH. (Estou executando o Ubuntu 10.04.4 LTS.)

Esta resposta para esta questão explica que" Os terminais só entendem caracteres, não chaves ", então eu preciso usar seqüências de escape para enviar teclas de função através de SSH. Mas não tenho certeza quais são os caracteres de controle para F1 - F12 na minha plataforma específica. Então, usei o comando sugerido em a resposta :

for x in {1..12}; do echo -n "F$x "; tput kf$x | cat -A; echo; done

Eu recebo esta saída:

F1 ^[OP
F2 ^[OQ
F3 ^[OR
F4 ^[OS
F5 ^[Ot
F6 ^[Ou
F7 ^[Ov
F8 ^[Ol
F9 ^[Ow
F10 ^[Ox
F11 
F12 

Isto diz - ou assim parece - que F11 e F12 não possuem sequências de escape associadas a eles. Eles foram roubados por outro programa e, em caso afirmativo, como posso obtê-los de volta?

    
por Andrew 24.06.2015 / 21:23

1 resposta

2

tput informa o que o terminal anuncia como suas teclas de função. Os terminais geralmente não anunciam todas as teclas de função e os principais colchetes que eles suportam. Para ver quais seqüências de escape o terminal realmente envia, use o método Ctrl + V mencionado em essa mesma resposta : pressione Ctrl + V em uma aplicação terminal que não liga novamente a tecla Ctrl + V (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 .

Se o Byobu não detectar as seqüências de escape do seu terminal corretamente, copie as definições correspondentes de /usr/share/byobu/keybindings/f-keys.screen para ~/.byobu/.screenrc e modifique as seqüências de escape para corresponder ao seu terminal. Por exemplo, se Ctrl + V F12 inserir ^[[24~ , adicionar

bindkey "^[[24~" process x
    
por 25.06.2015 / 04:49