Изменение порядка окон tmux

Как я могу эффективно переупорядочить окна в tmux? Например, имея этот набор окон:

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

Что мне нужно сделать, чтобы переместить rss между elinks и mutt , в результате чего:

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

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

3 Solutions collect form web for “Изменение порядка окон tmux”

swap-window может помочь вам:

 swap-window -t -1 

Он перемещает текущее окно слева на одну позицию.

От человека 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. 

Вы можете привязать его к ключу:

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

Затем вы можете использовать Shift+Left и Shift+Right для изменения текущего положения окна.

Вот рабочее решение, завернутое в функцию 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 

Бонус: пребывание в том же окне, если текущее активное окно не затронуто.

Если tmux – версия 1.7 или выше

 move-window -r 

или

 set-option -g renumber-windows on 

в .tmux.conf для автоматического выполнения, в будущем.

  • Изменение сочетания клавиш префикса tmux для быстрого сочетания клавиш
  • Как раскрасить последнее окно в строке состояния?
  • Как выделить результат поиска в tmux?
  • Почему мои приложения для рисования экрана не отображаются под tmux?
  • tmux не раскрашивает подсказку PS1
  • Достаточно установить параметр -g-prefix, чтобы изменить префикс ключа tmux
  • Есть ли способ переопределить навигационные клавиши для режима копирования tmux?
  • Панель Tmux: Unzoom при переключении на другую панель
  • Есть ли способ узнать, почему tmux разбился
  • Шрифт / SSH-взаимодействие?
  • Мош и терминальное мультиплексирование
  • Interesting Posts
    Linux и Unix - лучшая ОС в мире.