¿Cómo reordeno las ventanas tmux?

¿Cómo reordeno las ventanas tmux?

En screen, puedo simplemente escribir C-a :number 0para mover una ventana a la parte superior de la lista de ventanas y empujar todas las demás ventanas hacia abajo una. ¿Para qué es la secuencia de comando equivalente tmux? Miré la página de manual, pero este punto me resulta confuso.

Respuesta1

El swap-windowcomando es el más cercano a lo que desea.

"Prefijo:" (es decir, Ctrl+ B, :de forma predeterminada) lo lleva al símbolo del sistema tmux. Allí ingresas:

swap-window -s 3 -t 1

para permitir que la ventana número 3 y la ventana número 1 intercambien sus posiciones.

Para intercambiar la ventana actual con la ventana superior, haga:

swap-window -t 0

En el improbable caso de no tener ninguna ventana en el índice 0, haga lo siguiente:

move-window -t 0

(si el índice base es 0, como es por defecto). El comando move-window -t <NUMBER>está vinculado de forma predeterminada a Ctrl+ B,..

Puede vincular ese comando a una clave (T para "arriba", por ejemplo) agregando lo siguiente a su ~/.tmux.conf:

bind-key T swap-window -t 0

Respuesta2

Además de la respuesta de Gareth, puede utilizar las siguientes combinaciones de teclas

bind-key -n C-S-Left swap-window -t -1
bind-key -n C-S-Right swap-window -t +1

Al presionar Ctrl+Shift+Izquierda (se moverá la ventana actual hacia la izquierda. De manera similar hacia la derecha. No es necesario usar el modificador (Cb).

Para la versión tmux 3.0, debe utilizar las siguientes combinaciones de teclas

bind-key -n C-S-Left swap-window -t -1\; select-window -t -1
bind-key -n C-S-Right swap-window -t +1\; select-window -t +1

Respuesta3

El equivalente de tmux :number 42es :move-window -t 42.

Respuesta4

Puede implementar un equivalente al comando screen's numberusando un script de shell externo que elija entre swap-windowy move-window. Puedes vincularlo a una clave de esa manera:

bind < command-prompt -p index "run-shell '~/.tmux.number.sh %%'"

~/.tmux.number.sh:

#!/bin/bash
if [ $# -ne 1 -o -z "$1" ]; then
    exit 1
fi
if tmux list-windows | grep -q "^$1:"; then
    tmux swap-window -t $1
else
    tmux move-window -t $1
fi

información relacionada