Перенумерация окон в tmux

Я часто получаю более десяти окон в tmux. Позже я закрываю некоторых из моих старых. Есть ли способ перенумеровать, скажем, окно 15, в окно 3 (которое больше не существует)? Или снова pack их, чтобы пустых слотов не было? Я хотел бы сделать это, потому что трудно перейти к окнам с более высоким номером, потому что вы не можете делать Ctrl+B, 15 . Я должен использовать Ctrl+B, w для отображения окон, а затем ввести букву, соответствующую окну, которое я хочу открыть.

Я знаю, что могу менять окна. Например, я мог бы создать новое окно ( Ctrl+B, c ), которое будет открываться в пустом слоте 3. Затем я могу swapw окно 15 и окно 3, а затем закрыть окно 15. Очевидно, это утомительный подход.

Как вы управляете многими окнами в tmux?

4 Solutions collect form web for “Перенумерация окон в tmux”

Похоже, вам нужно это:

 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. 

Вызов movew без параметров перемещает текущее окно в первую свободную позицию. movew -r будет перенумеровать все окна одновременно.

tmux 1.7 имеет несколько функций, которые могут помочь установить и поддерживать номера безразмерного / упакованного окна:

  • Команда move-window выучила новую опцию -r которая будет перенумеровать все окна в сеансе (либо текущий сеанс, либо один, указанный с помощью опции -t ).

    Если у вас есть набор окон типа {1: A, 4: B, 15: C}, вы можете запустить move-window -r чтобы перенумеровать их на {1: A, 2: B, 3: C} (они начнется с вашего base-index , 1 в этом примере).

  • Когда параметр сеанса renumber-windows активирован, tmux автоматически перенумерует окна сеанса (как с помощью move-window -r ) после закрытия любого окна.

    Если вам нравится это поведение, вы можете включить его в глобальном значении, чтобы все сеансы, которые не перекрывали его, автоматически включили его:

     set-option -g renumber-windows on 

Я часто оказываюсь в ситуации, когда у меня есть промежутки между номерами окон, например сеанс с окнами:

 1 3 4 8 9 13 

Я написал сценарий tmux, чтобы переупорядочить их, не изменяя их порядок и не активировав параметр «перенумеровать-окна». Результат:

 1 2 3 4 5 6 

Добавьте в свой .tmux.conf следующее:

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

Нажмите [PREFIX] -R, чтобы переупорядочить окна (или изменить привязку). ps: В настоящее время я запускаю tmux 1.9a.

EDIT :

Вышеупомянутое может быть заменено гораздо проще:

 bind R \ move-window -r\; \ display-message "Windows reordered..." 

Предыдущие ответы все в порядке, но вот краткое решение, если все, что вы хотите, это перетасовать небольшое количество окон снова и снова.

 move-window -t <number> 

переместит текущее окно на новый номер окна (который уже не должен быть занят). Чтобы поменять два окна, вы сначала переместите одно окно на новый номер. например, для замены окон 3 и 5:

 move-window -s 3 -t 99 move-window -s 5 -t 3 move-window -s 99 -t 5 
  • Как сопоставить j / k с <Up> / <Down> для приложения только в терминальном эмуляторе?
  • После потери соединения ssh с полем с запуском tmux оболочка искажается
  • Пересылка Cc на удаленную сессию tmux
  • Как я могу сбросить автоматическую нумерацию имен сеанса tmux?
  • Tmux ест последовательность контрольных вкладок
  • Выполнять команды в tmux из терминала
  • vim и tmux противоречат друг другу. Как я могу это исправить?
  • Отправить нажатия клавиш для процесса на консоли
  • Tmux отображает «<xzy not ready>» в строке состояния
  • Как я могу перейти вверх или вниз в tmux с помощью Terminal.app?
  • Имитация оболочки оболочки GNU в tmux
  • Linux и Unix - лучшая ОС в мире.