Reordenar o windows tmux

19

Como posso reorganizar janelas de maneira eficiente no tmux? Por exemplo, tendo este conjunto de janelas:

0:zsh  1:elinks  2:mutt  3:irssi  4:emacs  5:rss  6:htop

O que eu precisaria fazer para mover rss para entre elinks e mutt , terminando com:

0:zsh  1:elinks  2:rss  3:mutt  4:irssi  5:emacs  6:htop

Eu sei como usar move-window para mover uma janela para um índice ainda não utilizado, e eu poderia usar uma série deles para conseguir isso - mas, obviamente, isso é muito entediante.

    
por igor 21.08.2014 / 09:49

3 respostas

34

swap-window pode ajudar você:

swap-window -t -1

Move a janela atual para a esquerda em uma posição.

De man tmux :

swap-window [-d] [-s src-window] [-t dst-window]
             (alias: swapw)
This is similar to link-window, except the source and destination windows are swapped. 
It is an error if no window exists at src-window.

Você pode vinculá-lo a uma chave:

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

Em seguida, você pode usar Shift+Left e Shift+Right para alterar a posição atual da janela.

    
por 21.08.2014 / 10:03
0

Aqui está uma solução de trabalho envolvida na função bash.

list=$(tmux lsw -F '#I');                           # for shift left, could be moved inside function
list=$(tmux lsw -F '#I'); list=$(echo $list|rev);   # for shift right, list reversed
shift_tmux_window_range() {  # depend on 'list'
    local started=0 beg=$1 end=$2
    for i in $list; do
        if (($i == $beg)); then
            started=1; h=$beg; tmux linkw -s $beg && tmux unlinkw -t $beg;
        elif (($i == $end)); then
            tmux movew -d -s $i -t $h; tmux movew -d -t $end; break;
        elif [ $started = 1 ]; then
            tmux movew -d -s $i -t $h; h=$i;
        fi;
    done
}

shift_tmux_window_range 5 2

Bônus: fique na mesma janela se a janela ativa atual não for afetada.

    
por 07.10.2017 / 14:58
-1

Se tmux for a versão 1.7 ou superior

move-window -r

ou

set-option -g renumber-windows on

em .tmux.conf para fazer automaticamente no futuro.

    
por 21.01.2016 / 13:32

Tags