Como reordeno as janelas do tmux?

Como reordeno as janelas do tmux?

Em screen, posso simplesmente digitar C-a :number 0para mover uma janela para o topo da lista de janelas e empurrar todas as outras janelas uma para baixo. Qual é a sequência de comandos equivalente tmux? Olhei a página de manual, mas estou achando confusa nesse ponto.

Responder1

O swap-windowcomando está mais próximo do que você deseja.

"Prefix :" (isto é Ctrl+ B, :por padrão) leva você ao prompt de comando tmux. Aí você entra:

swap-window -s 3 -t 1

para permitir que a janela número 3 e a janela número 1 troquem suas posições.

Para trocar a janela atual pela janela superior, faça:

swap-window -t 0

No caso improvável de não haver janela no índice 0, faça:

move-window -t 0

(se o índice base for 0, como é por padrão). O comando move-window -t <NUMBER>é, por padrão, vinculado a Ctrl+ B, ..

Você pode vincular esse comando a uma chave (T para "top", por exemplo) adicionando o seguinte ao seu ~/.tmux.conf:

bind-key T swap-window -t 0

Responder2

Adicionando à resposta de Gareth, você pode usar as seguintes combinações de teclas

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

Pressionar Ctrl+Shift+Esquerda (moverá a janela atual para a esquerda. Da mesma forma para a direita. Não há necessidade de usar o modificador (Cb).

Para a versão tmux 3.0, você deve usar as seguintes combinações 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

Responder3

O tmux equivalente a :number 42é :move-window -t 42.

Responder4

Você pode implementar um comando equivalente ao screen' numberusando um script de shell externo que escolhe entre swap-windowe move-window. Você pode vinculá-lo a uma chave dessa maneira:

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

informação relacionada