Renumerando janelas no tmux

113

Eu geralmente acabo com mais de dez janelas no tmux. Mais tarde, fecho alguns dos meus mais velhos. Existe uma maneira de renumerar, digamos, a janela 15, para a janela 3 (que não existe mais)? Ou para pack todos eles de novo, para que não haja slots vazios? Eu gostaria de fazer isso porque é difícil pular para janelas numeradas mais altas, porque você não pode fazer Ctrl+B, 15 . Eu tenho que usar Ctrl+B, w para listar as janelas e, em seguida, digite a letra correspondente à janela que eu quero abrir.

Eu sei que posso trocar janelas. Por exemplo, eu poderia criar uma nova janela ( Ctrl+B, c ) que abriria no slot vazio 3. Eu posso então swapw window 15 e window 3 e então fechar a janela 15. Obviamente, essa é uma abordagem tediosa.

Como você gerencia muitas janelas no tmux?

    
por dogbane 30.09.2011 / 10:27

4 respostas

111

Parece que você precisa disso:

move-window [-rdk] [-s src-window] [-t dst-window]
              (alias: movew)
        This is similar to link-window, except the window at src-window
        is moved to dst-window.  With -r, all windows in the session are
        renumbered in sequential order, respecting the base-index option.

Chamar movew sem parâmetros move a janela atual para a primeira posição livre. movew -r irá renumerar todas as janelas de uma só vez.

    
por 30.09.2011 / 10:58
79
O

tmux 1.7 possui alguns recursos que podem ajudar a estabelecer e manter números de janela sem intervalos / empacotados:

  • O comando move-window aprendeu uma nova opção -r que renumerará todas as janelas em uma sessão (a sessão atual ou a especificada com a opção -t ).

    Se você tiver um conjunto de janelas como {1: A, 4: B, 15: C}, poderá executar move-window -r para renumerá-las para {1: A, 2: B, 3: C} ( eles começarão com seu base-index ; 1 neste exemplo).

  • Quando a opção renumber-windows session está habilitada, tmux renumerará automaticamente as janelas de uma sessão (como em move-window -r ) depois que qualquer janela for fechada.

    Se você gosta desse comportamento, pode ativá-lo no valor global para que todas as sessões que não o substituam o habilitem automaticamente:

    set-option -g renumber-windows on
    
por 15.10.2012 / 08:16
14

Muitas vezes me encontro em uma situação em que tenho lacunas entre os números das janelas, por exemplo, uma sessão com o Windows:

1 3 4 8 9 13

Eu escrevi um script tmux para reordená-los sem alterar a respectiva ordem nem ativar a opção 'renumeração-windows'. O resultado:

1 2 3 4 5 6

Coloque o seguinte no seu arquivo .tmux.conf:

bind R                                      \
    set -g renumber-windows on\;            \
    new-window\; kill-window\;              \
    set -g renumber-windows off\;           \
    display-message "Windows reordered..."

Pressione [PREFIX] -R para reorganizar as janelas (ou altere a ligação).

Atualmente estou executando o tmux 1.9a.

O acima pode ser substituído pelo muito mais simples:

bind R                                      \
    move-window -r\;                        \
    display-message "Windows reordered..."
    
por 13.06.2014 / 09:59
6

As respostas anteriores estão bem, mas aqui está uma solução concisa, se tudo o que você quer é embaralhar um pequeno número de janelas de vez em quando.

move-window -t <number>

moverá a janela atual para um novo número de janela (que não deve estar ocupado). Para trocar duas janelas, mova temporariamente uma janela para um novo número primeiro. por exemplo. para trocar as janelas 3 e 5:

move-window -s 3 -t 99
move-window -s 5 -t 3
move-window -s 99 -t 5
    
por 07.10.2015 / 17:24

Tags