Le volet de redimensionnement ne fonctionne pas pour tmux sur mac?

33

Après avoir cherché, j'ai pensé que ctrl + b (PREFIX) puis ctrl + flèche devrait redimensionner le volet actuel. Mais ça ne fonctionne pas. Suis-je en train de manquer quelque chose?

Merci.

Biswanath
la source
Pour info, j'ai ajusté la largeur avec PREFIX: resize-pane, mais je me demande toujours pourquoi la commande ci-dessus ne devrait pas fonctionner.
Biswanath
devrait probablement être sur apple.stackexchange.com
Alex Leach

Réponses:

42

Votre terminal n'envoie probablement pas de séquence (distincte) lorsque vous maintenez enfoncé Controlet appuyez sur une touche fléchée.

Essayez d'exécuter catet de taper les touches (Control-C pour quitter). Vous constaterez probablement que (par exemple) Upet Control- les Updeux génèrent la même séquence.

Application Terminal OS X

Dans sa configuration par défaut, l' application OS X Terminal envoie la séquence ^[[A(ou ^[OA) que vous tapiez Upou Control- Up(également toute combinaison avec Shiftet Option, aussi).

Cependant, vous pouvez reconfigurer Terminal pour envoyer les codes appropriés. C'est un peu fastidieux, mais vous ne devez généralement le faire qu'une seule fois.

  1. Terminal > Préférences…
  2. Onglet Paramètres de niveau supérieur
  3. choisissez le profil que vous souhaitez modifier
  4. Onglet clavier
  5. cliquez sur le bouton plus pour ajouter une nouvelle liaison

    • choisissez une touche de curseur
    • définissez le modificateur sur control
    • utiliser l' Send Text:action
    • tapez Escape(apparaîtra comme \033) suivi d' [1;5un caractère supplémentaire:
      • Apour Up,
      • Bpour Down,
      • Cpour Right, ou
      • D pour Left
    • cliquez sur OK pour ajouter la liaison

Par exemple, la séquence finale de Control- Updevrait finir par ressembler \033[1;5A.

Ces séquences sont celles que XTerm génère (voir la documentation de ctlseqs pour plus de détails).

Répétez la dernière étape pour les autres touches fléchées.

iTerm 2

iTerm 2 envoie la séquence attendue par défaut.

Chris Johnsen
la source
En effet, les touches Ctrl + {touches fléchées} sont mappées pour changer d'application. Ils n'envoient pas la séquence.
Biswanath
19
J'ai essayé cela sur une machine Mavericks vanille (rétine MBP fin 2013), mais cela n'a pas fonctionné sans désactiver également tous les raccourcis clavier Ctrl + Flèche dans les Préférences Système -> Clavier -> Raccourcis -> Contrôle de mission. +1 pour obtenir une astuce sur l'utilisation des catévénements clavier
Alex Leach
fonctionne bien jusqu'à ce que je démarre tmux. J'obtiens ^ [[1; 5A ^ [[1; 5B avant de lancer tmux, mais ^ [OA ^ [OB dans tmux.
nakhli
1
@ Sinbadsoft.com: Il semble que vous n'ayez pas xterm-keysactivé cette fenêtre tmux ; vous voudrez peut-être set -gw xterm-keys on.
Chris Johnsen
fonctionne parfaitement pour moi (el capitan).
ling
10

Sur au moins Mavericks et iTerm2, vous devez maintenir Control, puis appuyer b(au lieu de maintenir), puis maintenir enfoncé un bouton directionnel. Cela envoie à peu près les mêmes séquences que le maintien enfoncé Control- bavec un bouton directionnel pour que cela fonctionne.

Assurez-vous également de vous diriger vers les paramètres du clavier et dans l'onglet des raccourcis, désactivez tout contrôle de mission et les raccourcis clavier que vous pouvez avoir pour Controlplus une touche directionnelle.

quinnirill
la source
7
Merci! changer les liaisons de contrôle de mission / fenêtres d'application dans les raccourcis clavier a fait la différence pour moi
sixty4bit
7

Vous pouvez utiliser la touche méta au lieu de la touche de contrôle dans les combinaisons ctrl- ↑ et ctrl- ↓. Dans OSX Terminal, la méta-clé par défaut est la touche d'échappement. Par exemple, pour augmenter la taille d'un volet, tapez ctrl-b esc- ↑.

Je trouve que la touche d'échappement est difficile à atteindre, j'utilise donc la touche option comme méta-clé. Dans Terminal.app, vous pouvez le changer en allant dans Terminal> Préférences> Profils> Clavier: cochez la case "Utiliser l'option comme touche méta".

Vous pouvez maintenant taper l'option ctrl-b- ↑ pour augmenter la taille ou l'option ctrl-b- ↓ pour diminuer la taille et vous n'avez pas à remapper les touches de contrôle de mission.

yothenberg
la source
Utiliser Escape n'était que la solution car maintenir Ctr + Flèche par défaut sur mes changements MacOS vers un autre bureau.
klimat