319 votes

Comment échanger deux volets dans Tmux ?

J'ai deux vitres en division horizontale. J'aimerais que le volet qui se trouve actuellement à droite se trouve à gauche dans la fenêtre. Je ne parle pas de déplacer le focus ( Ctrl + B o ). Comment puis-je y parvenir ?

Volet gauche <--> Volet droit

475voto

Chris Johnsen Points 36743

El swap-pane Le commandement peut le faire pour vous. Le site { y } sont liées à swap-pane -U y swap-pane -D dans la configuration par défaut.

Donc, pour effectuer le changement que vous souhaitez, vous pouvez probablement utiliser Prefix { lorsque vous êtes dans le volet de droite (ou Prefix } si vous êtes dans le volet de gauche).

El -U y -D se réfèrent à "haut" et "bas" dans l'ordre de l'index du volet ("haut" est la même direction que "bas"). Prefix o se déplace d'un volet à l'autre). Vous pouvez voir les indices des volets avec display-panes ( Prefix q par défaut).

29 votes

+1 pour la spécification Prefix au lieu de supposer que tout le monde va utiliser Ctrl-b

4 votes

Je suis d'accord. C'est encore pire quand les gens supposent que tu utilises Ctrl-a car ce sont les personnes qui savent que le préfixe peut être modifié en fonction de l'utilisateur.

0 votes

Voir la réponse de @kay pour une utilisation plus générale de l'option swap-pane (et réponse à la question du titre).

92voto

joelostblom Points 2309

Vous pouvez frapper Ctrl b et continuez à maintenir Ctrl tout en frappant o . Cela va faire pivoter tous les volets existants, donc dans votre cas, cela va permuter les deux seuls volets existants.

Ctrl b + Alt o tourne dans le sens inverse (utile lorsque vous avez plus de deux volets).

4 votes

Oui, on est sur la même longueur d'onde. Mais après le premier 'o', qui provoque une rotation du volet, le 'o' suivant est envoyé au Shell sous-jacent et traité par l'application qui s'y trouve. Je pense qu'il y a quelque chose de louche avec ma carte, ou peut-être quelque chose qui dépend de la version de tmux. Merci de répondre.

2 votes

@Stabledog Je suis sur tmux 2.3 actuellement, mais je pense que cela a toujours fonctionné pour moi... Je ne peux pas vraiment penser à ce qui pourrait être le problème. Il semble étrange que le Ctrl+o est envoyé au Shell au lieu de tmux, surtout si ce n'est pas le cas pour l'appui répété sur Ctrl+b (ou d'autres commandes tmux ?).

0 votes

En fait, je pense que cela se produit pour toutes les commandes. En tout cas, je ne connais aucun cas où je peux faire Ctrl+x, frapper une touche liée à une opération, et rester en mode "clavier tmux". J'ai juste supposé que c'est à dessein.

65voto

Kay Points 1031

Le contrôle le plus précis que vous pouvez avoir est d'utiliser la commande swap-pane directement . Ce n'est pas si difficile à faire :

  1. ctrl-b q vous montre l'"ID" de chaque volet de la fenêtre actuelle - souvenez-vous des deux volets que vous voulez échanger. Disons qu'il s'agit de 3 et 5.
  2. ctrl-b : pour activer la ligne de commande tmux. Puis lancez la commande swap-pane -s 3 -t 5 .

Notez que vous disposez de l'auto-complétion lorsque vous tapez des commandes. Vous pouvez également rechercher la syntaxe d'une commande directement à partir de page de manuel de tmux . C'est comme ça que j'ai appris la syntaxe pour swap-pane .

3voto

Miron Veryanskiy Points 160

Pour échanger directement deux vitres :

  1. Sélectionnez le premier volet avec <prefix> m (la valeur par défaut pour <prefix> でございます ctrl-b )
  2. Allez dans le deuxième volet, et tapez <prefix>:swap-pane (sans argument)

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X