Comment puis-je obtenir les touches F1-F12 pour changer d'écran dans gnu écran dans cygwin lors de la connexion via SSH?
Je me connecte à un ordinateur de bureau exécutant cygwin via SSH à partir du terminal de l'app sous Mac OS X. j'ai déjà commencé à l'écran sur la cygwin côté et peut se connecter sur la session SSH. En outre, j'ai de la suite dans les .screenrc fichier:
bindkey -k k1 select 1 # F1 = screen 1
bindkey -k k2 select 2 # F2 = screen 2
bindkey -k k3 select 3 # F3 = screen 3
bindkey -k k4 select 4 # F4 = screen 4
bindkey -k k5 select 5 # F5 = screen 5
bindkey -k k6 select 6 # F6 = screen 6
bindkey -k k7 select 7 # F7 = screen 7
bindkey -k k8 select 8 # F8 = screen 8
bindkey -k k9 select 9 # F9 = screen 9
bindkey -k F1 prev # F11 = prev
bindkey -k F2 next # F12 = next
Cependant, lorsque je démarre plusieurs fenêtres à l'écran et tenter de passer entre eux via les touches de fonction, tout ce que j'obtiens est un bip.
J'ai essayé différents réglages pour la somme de TERME (par exemple, la norme ansi, cygwin, xterm-color, vt100) et ils n'ont pas vraiment l'air d'affecter quoi que ce soit.
J'ai vérifié que le terminal de l'app est en fait de l'envoi de la séquence d'échappement pour la touche de fonction que j'attends et que mon shell bash (exécution à l'intérieur de l'écran) est à la recevoir. Par exemple, pour la F1, il envoie la suite (hexdump est un script perl que j'ai écrit qui prend STDIN dans binmode et sorties en tant que hexadécimal/ascii dump):
% hexdump
[press F1 and then hit ^D to terminate input]
00000000: 1b4f50 .OP
Si les choses étaient fonctionne correctement, je ne pense pas que bash devrait recevoir la séquence d'échappement parce que l'écran devrait avoir attrapé et l'a transformé en une commande.
Comment puis-je obtenir l'aide des touches de fonction de travail?
La FAQ dit: "les outils logiciels couramment utilisés par les programmeurs". Les outils que j'ai décrit semblent les plus importantes pour moi.
OriginalL'auteur Mikey | 2011-01-11
Vous devez vous connecter pour publier un commentaire.
Si vous avez un plus bizarre de l'installation (par exemple, Windows -> Mastic -> Linux) où la norme
bindkey -k
solution n'est pas tout à fait à droite, vous pouvez utiliser leshowkey
commande:de trouver la correspondance entre les touches de codes de clé. Dans mon cas particulier, les mettre en
~/.screenrc
a fait le tour:OriginalL'auteur Mr Fooz
Avec beaucoup d'expérimentation, j'ai été en mesure de l'obtenir pour fonctionner en ajoutant les lignes suivantes à mon .screenrc:
Je ne m'en souviens pas bien qu'il ne l'était il y a quelques années. Une partie de cela a à voir avec la connaissance, les noms des terminaux pour les clés (par exemple, k1, k2, etc.) et une partie de cela a à voir avec savoir ce que votre terminal transmet lorsque vous appuyez sur F1, F2, etc. J'ai été en mesure de comprendre l'autre, par l'exécution de "lire" dans le shell bash et puis en appuyant sur F1, F2, etc. Par exemple, quand je les ai lu et appuyez sur F1, c'est ce que j'ai vu:
% read ^[OP
En bash, si vous appuyez sur Ctrl-V suivie par la touche de fonction de l'intérêt, vous permettra de voir les codes ci-dessus imprimé sur la ligne de commande. C'est comment vous trouvez le codes. C'est peut-être un
readline
?OriginalL'auteur Mikey
Je suis en utilisant iTerm sur macos. Cela fonctionne pour moi:
Mettre ces 4 lignes dans votre .screenrc.
Réponse inspirée par Mikey réponse.
OriginalL'auteur user674669