Invio dei tasti funzione (F1-F12) tramite SSH


13

Ho una macchina Fedora a cui posso SSH. Uno dei programmi che mi piacerebbe usare di tanto in tanto usa i tasti funzione. Il problema è che sto SSH'ing da un tablet Android (ASUS Transformer Infinity) con una tastiera fisica, ma non F1- F12chiavi. Quindi, fino a quando l'app del terminale che sto usando (VX ConnectBot) non decide di aggiungerli come funzionalità, sto cercando un modo per inviarli usando il resto della tastiera.

Posso utilizzare tutti i caratteri ASCII stampabili, Esc, Ctrl, Shift, Enter, e Tab.


Penso che faresti meglio a chiedere su Android.SE.
derobert,

Risposte:


25

I terminali comprendono solo i caratteri, non i tasti. Quindi tutti i tasti funzione sono codificati come sequenze di caratteri, usando i caratteri di controllo. A parte alcuni comuni a cui è associato un carattere di controllo ( Tabè Ctrl+I, Enterè Ctrl+M, Escè Ctrl+[), i tasti funzione inviano sequenze di escape, a partire da Ctrl+[ [o Ctrl+[ O. È possibile utilizzare il tputcomando per vedere cosa si aspettano le sequenze di escape per ciascun tasto funzione sul terminale. Queste sequenze sono archiviate nel terminfodatabase. Ad esempio, il frammento di shell seguente mostra le sequenze di escape corrispondenti a ciascun tasto funzione.

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

Un altro modo per vedere la sequenza di escape per un tasto funzione è premere Ctrl+ Vin un'applicazione terminale che non ricollega il tasto Ctrl+ V(come la shell). Ctrl+ Vinserisce il carattere successivo (che sarà il carattere di escape) letteralmente e sarai in grado di vedere il resto della sequenza, che consiste di caratteri ordinari.

Poiché le sequenze possono essere scomode da digitare, investigare cambiando i collegamenti chiave nell'applicazione o usando un altro emulatore di terminale. Inoltre, tieni presente che potresti avere un limite di tempo: alcune applicazioni riconoscono le sequenze di escape solo se arrivano abbastanza velocemente, in modo che possano dare un significato Escsolo alla chiave.


Come posso aggiungere i tasti funzione spostati all'elenco fornito dal comando?
drevicko,

1
@drevicko Su xterm, Maiusc + F1 è kf13, Maiusc + F2 è kf14, ecc. Quindi Ctrl + F1 è kf25, Ctrl + Maiusc + F1 è kf37, Alt + F1 è kf49. Non so se questo funziona su altri terminali né cosa ottieni se hai un vero tasto F13.
Gilles 'SO- smetti di essere malvagio' il

3

Emulatore di terminale Android di Jack Palevich utilizza combinazioni di tasti con i tasti del volume per inviare una varietà di tasti, inclusi i tasti funzione. C'è anche la tastiera di Hacker che ha tutti i tasti disponibili che una tastiera reale avrebbe.


Grazie, la tastiera Hacker dovrebbe coprire ciò di cui ho bisogno per ora.
Sizik,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.