Em screen
, posso simplesmente digitar C-a :number 0
para 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-window
comando 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
' number
usando um script de shell externo que escolhe entre swap-window
e 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