¿Cómo se intercambian dos paneles en Tmux?

208

Tengo dos paneles en división horizontal. Me gustaría tener el panel actualmente a la derecha para estar a la izquierda en la ventana. No estoy hablando de mover el foco ( Ctrl+ B o). ¿Cómo logro esto?

'panel izquierdo' <--> 'panel derecho'

OddRaven
fuente

Respuestas:

307

El swap-panecomando puede hacer esto por usted. Las teclas {y }están vinculadas a swap-pane -Uy swap-pane -Den la configuración predeterminada.

Entonces, para efectuar el cambio deseado, probablemente pueda usarlo Prefix {cuando esté en el panel derecho (o Prefix }si está en el panel izquierdo).

El -Uy se -Drefieren a "arriba" y "abajo" en el orden del índice del panel ("arriba" es la misma dirección que se Prefix omueve a través de los paneles). Puede ver los índices del panel con display-panes( Prefix q, por defecto).

Chris Johnsen
fuente
8
+1 por especificar en Prefixlugar de asumir que todos usaránCtrl-b
Aaron Wallentine
1
Convenido. Es aún peor cuando las personas suponen que estás usando Ctrl-a, ya que son las personas que saben que el prefijo se puede cambiar para adaptarse al usuario.
byxor
Vea la respuesta de @ kay para un uso más general de swap-pane(y la respuesta a la pregunta en el título).
Jonathan
51

Puedes golpear Ctrl by mantener presionado Ctrlmientras golpeas o. Esto rotará todos los paneles existentes, por lo que en su caso intercambiará los únicos dos paneles existentes.

Ctrl b+ Alt ogira en sentido opuesto (útil cuando tiene más de dos paneles).

joelostblom
fuente
Sí, estamos en la misma página. Pero después de la primera 'o', que causa una rotación del panel, la siguiente 'o' se envía al shell subyacente y es procesada por cualquier aplicación que esté allí. Estoy pensando en algo sospechoso con mi mapa, o tal vez algo que depende de la versión de tmux. Gracias por responder.
Stabledog
1
@Stabledog Estoy en tmux 2.3 actualmente, pero creo que esto siempre ha funcionado para mí ... Realmente no puedo pensar en cuál podría ser el problema. Suena extraño que Ctrl+ose esté enviando al shell en lugar de a tmux, especialmente si este no es el caso de presionar repetidamente Ctrl+b(¿u otros comandos tmux?).
joelostblom
En realidad creo que está sucediendo para todos los comandos. Al menos, no conozco ningún caso en el que pueda hacer Ctrl + x, presionar una tecla que está vinculada a alguna operación y permanecer en modo "teclado tmux". Supuse que eso es por diseño.
Stabledog
1
@Stabledog En realidad, me di cuenta de que el único otro comando donde puedo mantener presionado el control y repetir las otras teclas es Ctrl+b;, que sigue girando el cursor entre dos paneles.
joelostblom
24

El control más preciso que puede tener es usar el comando swap-pane directamente . Esto no es tan difícil de hacer:

  1. ctrl-b qmuestra la "ID" para cada panel en la ventana actual; recuerde los dos paneles que desea intercambiar. Digamos que son 3 y 5.
  2. ctrl-b :para activar la línea de comando tmux. Luego emita el comando swap-pane -s 3 -t 5.

Tenga en cuenta que tiene autocompletado al escribir comandos. También puede buscar la sintaxis de un comando directamente desde la página de manual de tmux . Así es como aprendo la sintaxis swap-pane.

Kay
fuente