Подтвердить что ты не робот

Как сделать tmux переупорядочивание окон при удалении?

У меня есть три окна:

1:zsh 2:vim* 3:htop

Когда я удаляю текущее окно (# 2), у меня есть эти окна:

1:zsh 3:htop

Как я могу сделать это так, чтобы он автоматически оценивал их как

1:zsh 2:htop

Если я правильно помню, это поведение по умолчанию экрана GNU. Я знаю, что всегда мог :swap-window, но я хотел бы знать, возможно ли это автоматически.

4b9b3361

Ответ 1

Сделайте это проще.

Если вы используете tmux ниже версии 1.7, добавьте следующую строку в ~/.tmux.conf:

 bind-key C-s run "for i in $(tmux lsw|awk -F: '{print $1}'); do tmux movew -s \$i; done"

Вы можете отсортировать все окна, набрав PREFIX-KEY, затем Ctrl + s.

Иначе, если вы используете tmux версии 1.7 или выше, как уже сказано всем, добавьте следующую строку в ~/.tmux.conf:

 set-option -g renumber-windows on

Ответ 2

Так как tmux 1.7, вы можете ввести только одну команду:

tmux movew -r

Ответ 4

Ниже приведено bash script (обновленная версия [1], чтобы отразить изменения в tmux API) переупорядочивает сеансы tmux. Я предлагаю добавить это как функцию bash, которую вы можете вызывать из любой оболочки.

# re-number tmux sessions                                                                                                                                                                                                                 
for session in $(tmux ls | awk -F: '{print $1}') ;do                                                                                                                                                                                      
    inum=0                                                                                                                                                                                                                                
    for window in $(tmux lsw -t 0 | awk -F: '/^[0-9*]/ {print $1}') ;do                                                                                                                                                                   
        if [ ${window} -gt ${inum} ] ;then                                                                                                                                                                                                
            echo "${session}:${window} -> ${session}:${inum}"                                                                                                                                                                             
            tmux movew -d -s ${session}:${window} -t ${session}:${inum}                                                                                                                                                                   
        fi                                                                                                                                                                                                                                
        inum=$((${inum}+1))                                                                                                                                                                                                               
    done                                                                                                                                                                                                                                  
done

[1] http://brainscraps.wikidot.com/tmux-renum