Raccourcis des touches de fonction dans PuTTY / MinTTY et Tmux / Byobu


18

En tant que rôdeur de longue date sur Stack Exchange, j'ai trouvé des réponses à la plupart de mes problèmes sans avoir à créer un compte. Mais aujourd'hui, je suis complètement perplexe avec ce problème, alors je demande de l'aide.

J'ai récemment découvert Byobu, un frontend pour Tmux qui utilise les touches Fn pour les tâches courantes. C'est une véritable bénédiction pour le multitâche via SSH vers un serveur Linux distant à partir du PC Windows que je dois utiliser au travail.

Actuellement, j'utilise gnome-terminal via un tunnel SSH car PuTTY et MinTTY (le terminal par défaut avec Cygwin) semblent envoyer les mauvais codes de touche pour les touches de fonction.

Je me demandais s'il y avait un moyen de remapper certains codes d'échappement afin qu'au moins un de mes terminaux Windows puisse fonctionner correctement avec Tmux. (Je suppose que je pourrais simplement apprendre les combinaisons de touches Ctrl + b / Ctrl + a, mais effectuer une combinaison de touches suivie d'une autre touche ne me semble pas vraiment ergonomique.)

Dans PuTTY, définir Terminal> Clavier> "Les touches de fonction et le clavier" sur "XtermR6" semble pousser normalement les séquences d'échappement correctes pour les touches Fn, mais les modificateurs Shift et Ctrl sont cassés. Je peux utiliser vim pour déterminer quels codes sont envoyés par chaque terminal. En attendant, je pense que j'ai peut-être recherché la combinaison que tmux recherche dans son code source , mais je ne suis pas sûr:

Key              Tmux Expects    Gnome-Terminal   PuTTY    MinTTY
Normal F3:                       ^[0R             ^[0R     ^[0R
Ctrl+F3          "\033[13^"      ^[01;5R          ^[0R     ^[[1;5R
Shift+F3         "\033[13$"      ^[01;2R          ^[[25~   ^[[1;2R
Ctrl+Shift+F3    "\033[13@"      ^[01;6R          ^[[25~   ^[[1;6R

Jusqu'à présent, MinTTY ressemble au meilleur candidat, mais cela me pose un problème complètement différent où byobu ignore 95% des pressions sur les touches Fn, les transmettant directement à l'application cliente. Je peux exécuter cat -v et envoyer du spam sur la touche F2 (nouvelle fenêtre), et il affichera "^ [0Q" quatre ou cinq fois avant d'apparaître soudainement dans une nouvelle fenêtre.

Si quelqu'un a des conseils, ce serait bienvenu. La plupart des choses que j'ai trouvées sur Internet ont dit de changer le type de terminal, mais j'ai essayé littéralement toutes les combinaisons proposées par chacun des deux programmes.

Merci!


3
Les séquences que vous répertoriez pour tmux ne sont que les séquences de clés modifiées de style rxvt qu'il reconnaît. tmux reconnaît également la séquence (non modifiée) spécifiée par l'entrée terminfo de TERM (par exemple, kf3quel que soit le TERM que vous utilisez lors de la connexion à tmux ) ainsi que les séquences de clés modifiées de style xterm de xterm-keys.c. Ainsi, les séquences que vous signalez à partir de Gnome-Terminal et MinTTY (bien que les caractères d'échappement + zéros dans vos séquences doivent être escape + letter-ohs (aka SS3) doivent être reconnus par tmux , mais il ne les transmettra que si vous avez le xterm-keysoption activée
Chris Johnsen

Réponses:


1

J'ai eu un problème similaire avec PuTTY et l'écran (je ne pouvais pas utiliser de Ctrlmodificateur). La solution que j'ai trouvée était KiTTY - le fork de PuTTY, qui est mieux entretenu (dernière mise à jour du 02/06/2015 22:02). Mon problème avec la Ctrlclé a disparu.

Par défaut, Kitty utilise les touches Fn pour ses propres raccourcis, mais vous pouvez le configurer d'une autre manière , les touches Fn seront envoyées à votre application.


0

J'utilise BYOBU moi-même de la même manière. J'utilise cygwin ces jours-ci car F2,3,4 et F6 fonctionnent juste pour moi et ce sont les seuls qui me préoccupent vraiment. Cependant, lorsque j'utilisais du mastic, j'ai eu le plus de succès avec le paramètre `` Les touches de fonction et le clavier '' pour émuler le VT100 +

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.