Quel est le préfixe / séquence d'échappement moins conflictuel pour l'écran ou le tmux?

L'écran fonctionne avec Ctrl + A. Tmux, d'autre part, tel qu'il est développé dans l'écran, utilise Ctrl + B. Les deux frappes, cependant, sont également utilisées dans les éditeurs, les shells, etc. Ainsi, choisir soit dégrade l'expérience utilisateur et la fonctionnalité de ces outils lorsqu'ils sont utilisés dans le tux ou l'écran.

Quel préfixe se dispute le moins avec les autres fonctionnalités des programmes et des shells?

Je pense que ^\ (aka ^| ) est le meilleur s'il est dans une position pratique sur la disposition de votre clavier. Ses utilisations dans d'autres programmes sont assez rares:

  • Envoi de SIGQUIT à un processus
  • Avorter pour ou pendant les boucles dans une coque lorsque ^C est intercepté
  • toggle-input-method de basculement toggle-input-method dans les émacs

Je ne connais aucun autre usage. Veillez à ne pas tuer accidentellement un processus en dehors du tmux ou de l' screen après l'avoir habitué. Cela ne me suis arrivé qu'une fois dans quelques années.

~/.tmux.conf

 unbind-key Cb set -g prefix 'C-\' bind-key 'C-\' send-prefix 

~/.screenrc

 escape ^|^| 

Pour les personnes qui souhaitent utiliser backtick comme échappement dans tmux, vous voudrez ajouter:

 unbind Cb set -g prefix ` bind-key ` send-prefix 

Ce dernier est important, sinon vous ne pouvez pas taper un backtick à d'autres fins 🙂

Ctrl + A est également connu pour causer des problèmes avec Emacs, y compris Bash en mode Emacs. Il semble que ce ne soit pas un problème pour vous.

Ctrl + O est l'autre option que j'ai vue. Apparemment, c'est par défaut dans RatPoison (il s'agit d'un gestionnaire de fenêtres X qui n'a pas besoin d'une souris). J'ai utilisé Ctrl + O lors de l'utilisation d'écrans imbriqués: Ctrl + O pour l'extérieur et Ctrl + A pour les internes. J'ai bien travaillé, mais j'ai peur de mes collègues. 🙂

Je pensais juste et si vous utilisez vi plutôt que Emacs, il y a quelques alternatives. Ctrl + G n'est pas utilisé par beaucoup, par exemple.

J'utilise un système complexe pour l'écran. Mon échappement par défaut est défini sur \ 140 \ 140, qui est une sauvegarde. Le Ctrl-A complique à la fois les Emacs et l'édition de ligne de commande pour moi dans Zsh, et je n'aime pas Ctrl-O (2 opérations manuelles pour la plupart des actions d'écran).

Je rebind 's' à l'écran 1 afin que les nouvelles sessions soient créées de gauche à droite sur le clavier à partir de 1. Cela me permet de réserver l'écran 0 pour ce que je considère comme une fenêtre persistante ou de référence. C'est un geste très rapide d'une main à (backtick) 1, (backtick) 2, (backtick) 3 pour échanger entre les fenêtres.

Le problème avec l'utilisation de backtick dans un environnement unix est lorsque vous tentez de couper et coller le code de script shell / perl. Pour cette raison, je lier F11 / F12 pour changer de personnage d'échappement.

 bindkey -d -k F1 escape ^O^O # bound to F11 bindkey -d -k F2 escape \140\140 # bound to F12 

Cela échangera l'échappatoire à Ctrl-O pour quand je fais des opérations de coupe et de pâte. J'ai trouvé frapper une double coche, c'est simple, et un bon compromis pour la plupart des opérations d'écran.

Réviser cette réponse avec une solution plus récente qui permet de basculer le mode en frappant F12 et en utilisant une légende pour indiquer le mode.

 ## command characters escape \140\140 # default is ` ## sets caption and escape toggle bindkey -d -k F2 process a # bound to F12 ## initial caption caption always '%{= kW}%?%F%{+b KW}%:%{= kK}%? %= %?%F%{-b .c}>>>%{-}%? | %-w%{mW}%n* %t%? @%u%?%{-}%+w ' ## registers to toggle bindkeys register a "\140:eval 'bindkey -d -k F2 process b' 'process c' 'escape \\017\\017'^M" register b "\017:eval 'bindkey -d -k F2 process a' 'process d' 'escape \\140\\140'^M" ## registers to change captions register c "\140:caption string '%{= kW}%?%F%{+b mW}%:%{= kK}%? %= %?%F%{.c}ALT%{-}%? | %-w%{KW}%n* %t%? @%u%?%{-}%+w '^M" register d "\017:caption string '%{= kW}%?%F%{+b KW}%:%{= kK}%? %= %?%F%{.c}>>>%{-}%? | %-w%{mW}%n* %t%? @%u%?%{-}%+w '^M" 

J'ai obtenu CAPS-LOCK globalement chargé sur ESC . Ensuite, j'utilise M-Space (c'est M-Space dire CAPS-LOCK + Space ) pour mon préfixe.

J'utilise Ctrl-Q dans tmux et ça a bien fonctionné. Je dois mentionner, cependant, qu'il est en conflit avec le contrôle de flux de shell. Par défaut, Ctrl-Q permet de réactiver la sortie après l'avoir arrêté avec Ctrl-S . Ayant été surpris par une coquille bloquée quelques fois après avoir frappé accidentellement Ctrl-S , j'ai appris à ne pas appuyer sur Ctrl-S .

(On pourrait également désactiver complètement le contrôle de flux avec stty -ixon , ou lier différentes clés pour stty start et stty stop ).

 # tmux.conf unbind Cb set -g prefix Cq 

Une suggestion tardive: ctrl-s . ctrl-s présente plusieurs avantages:

  1. Sur la ligne à la maison.
  2. Toujours proche de ctrl-a (en fait, pour la plupart des typers, il utilisera les mêmes deux doigts qu'ils utilisent pour ctrl-a ), de sorte que la mémoire musculaire passe de ctrl-a à ctrl-s est banale – pour moi, elle est devenue Deuxième nature dans une heure environ d'essai.
  3. Libère le ctrl-a pour les opérations de style «Emission de début de ligne» ou «Increment Number» de style vac. Ou hey, pour courir l'écran dans un panneau tmux sans avoir à vous soucier d'échapper aux caractères de préfixe pour contrôler l'instance de l'écran intégré. (Je le fais souvent en utilisant un tux local avec des panneaux contenant des sessions ssh vers des serveurs distants, dans lesquels je cours l'écran)
  4. Ne pas annuler ou ajouter des exigences d'échappement à toute autre fonctionnalité de terminal habituellement utilisée. Rien que la grande majorité des gens utilisent aujourd'hui est sur Ctrl-s!

Bien sûr, la raison pour laquelle rien n'est sur Ctrl-s est que dans le terminal, il est traditionnellement utilisé pour le contrôle du flux, datant des jours précédant l'apparition d'outils de pagination comme de more fréquents. Je suis sûr que certains programmes de terminal de GUI ont encore une fonctionnalité de contrôle de flux activée par défaut, mais je ne suis pas vraiment entré dans l'une; Les programmes de terminal de gui que j'ai essayé tout semblent ignorer complètement par défaut, ce qui rend cette combinaison de clés pratique disponible pour des utilisations plus productives.

Donc, si vous n'utilisez pas l'écran / tmux à l'intérieur (par exemple) d'un terminal Linux brute, mais plutôt à partir d'un terminal basé sur l'interface graphique, alors je recommande de donner une tentative de ctrl-s ; Il est fait de zéro sur tmux et écran beaucoup plus pratique pour moi.

J'aime réserver un ^Space pour des opérations très spéciales ou communes parce que je trouve que c'est le préfixe le plus simple à taper, mais maintenant je l'essaye comme le prefix dans tmux .

Il laisse vos doigts libres de sauter instantanément à la commande que vous voulez taper. Essaie.

J'ai entendu parler de `(backtick) en cours d'utilisation, puis il suffit de le taper deux fois pour un backtick réelle. Peut-être mieux pour les utilisateurs vi qui sont habitués à l'action (à moins que vous ne fassiez le verrouillage Caps).

En tant qu'utilisateur GNU emacs, zsh et MS Windows, j'utilise Control-T. (Par exemple, dans .screenrc 🙂

Échapper "^ T ^ T"

Oui Control-T a quelque chose qui lui est lié, comme le menu déroulant dans l'aptitude d'Ubuntu, ou transposer le caractère dans Emacs.

J'ai négligé Co parce qu'il nécessite deux mains pour moi.

Je pense que la meilleure solution est ^ C. Emacs utilise ^ C comme une clé de préfixe, et je trouve que lorsque j'ai besoin de taper ^ C dans une coque, je sais presque toujours deux types. 🙂

 unbind-key Cb set -g prefix Cc bind-key Cc send-prefix 

J'utilise Caps Lock, et sur OSX, vous devez faire des trucs spéciaux pour le faire fonctionner.

https://gist.github.com/burtlo/3788048

Une clé sans conflit peut être Cz , car il est généralement utilisé pour envoyer le programme en arrière-plan pour continuer une autre chose sur le shell qui l'a commencé. Je ne le fais pas quand j'ai le tmux.

Je recommande Cj , ce qui n'interfère pas beaucoup avec vi ou emacs. Essentiellement, je suis d'accord avec un commentaire de Susam Pal, qui semble digne d'apparaître comme une réponse, car les autres semblent avoir des conflits importants de mon point de vue.

J'utilise Cj comme ma clé de préfixe puisque Cj est synonyme de j ou de Vim et personne n'utilise Cj pour déplacer une ligne vers le bas dans Vim. J'ai ceci dans mon ~ / .tmux.conf:

set -g prefix2 Cj; bind-key Cj send-prefix -2

Pour la disposition du clavier Dvorak du programmeur, il est très pratique d'utiliser une touche moins (tiret) comme préfixe, ctrl + - .
La touche moins est sur la position de la clé de devis unique dans la mise en page qwerty. De même, j'ai la touche clé de verrouillage comme touche ctrl. Voici un tmux conf, pour le définir comme un préfixe:

 unbind Cb set -g prefix C-_ bind C-_ send-prefix bind - last-window 

Vous vous demandez peut-être pourquoi le caractère de soulignement est utilisé au lieu de moins? Reportez-vous à Tmux: Comment puis-je me lier à C- (contrôle-moins)?
Pour qwerty, vous pouvez appliquer Comment lier la touche de préfixe tmux à C- '? Solution, afin de conserver le même raccourci.

Je dirais que c'est un préfixe parfait si vous utilisez Vim / Neovim. Parce que les préfixes, comme ctrl + a ou ctrl + b , font ombre (chevauchent) la fonctionnalité de Vim, de l'une ou l'autre manière.

Personnellement, b est juste trop loin de Ctrl pour moi. Quand j'utilise tmux, je change toujours la liaison de Cb à Ca. Le conflit principal avec Ca est tout sélectionner, mais je n'ai pas trouvé cela comme un problème avec les programmes avec lesquels j'utilise tmux.

Vous pouvez utiliser un backtick. Certaines anciennes versions de tmux ne prennent pas en charge le backtick, de sorte que vous pouvez faire la suite à la solution de contournement (ce qui ajouterait C-`, C- @ et C-espace comme méta en même temps)

 # meta prefix - @ - backtick unbind Cb set -g prefix C-@ bind C-@ send-prefix bind C-@ last-window 

Je remape normalement mon CapsLock vers Ctrl, donc il est encore plus logique avec le backtick.

J'aime la suggestion de la liaison ctrl- \ comme le préfixe , mais pour que cela fonctionne sur Linux Mint 12, j'ai dû échapper à la place de la liaison au bas. Sinon, cela ne prendrait pas. Voir mon .tmux.conf ici: Utilisation de tmux avec les deux emacs et vim

Je pense que les utilisateurs de Mac trouveront le § plus pratique que le backtick.

Sur le clavier non Mac , le backtick est positionné à peu près à la même clé que le § sur les claviers Mac. Donc, pour avoir la même commodité que les personnes qui suggèrent d'utiliser le backtick, utilisez le signe de paragraphe sur un clavier Mac.

L'utilisation du backtick sur les claviers Mac est délicate, car elle se trouve à proximité de la touche gauche (⇧), du contrôle (^) et (⌥) des touches alt. Sur MacBooks, même près de la touche fn gauche.

La plupart des réponses ici utilisent Ctrl dans le cadre d'une combinaison de touches.
Quand j'ai utilisé Ctrl, mon doigt rose a commencé à blesser car je me dirige toujours vers Ctrl.
J'utilise Alt-j que je tape avec mon pouce gauche et mon index droit et c'est très pratique. Je n'ai pas encore trouvé de collisions avec d'autres programmes.

unbind Cb set-option -g prefix Mj