Перемещение окна между клиентами tmux

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

Ответ 1

Да, вы можете использовать команду move-window:

move-window [-d] [-s src-window] [-t dst-window]
           (alias: movew)

Это похоже на ссылку-окно, за исключением того, что окно в src-окне перемещается в dst-окно.

где src-window и dst-window имеют форму: session: window.pane(сеанс и окно могут быть либо именем, либо id).

Итак, предположим, что у вас сеанс "чата" с окном "irc" и вы хотите переместить его на сеанс "other_session", который вы можете сделать (в командной строке tmux):

move-window -s chat:irc -t other_session

Если вы уже находитесь в окне чата: irc, вам не нужно указывать источник, поэтому

move-window -t other_session:

сделает это.

Таким же образом, из сеанса "other_session" вам не нужно указывать цель.

movew -d irc:irc_window

Если вы не назвали ваши окна/сеансы, вам нужно использовать их идентификаторы.

Ответ 2

Еще один полезный вариант:

 link-window [-dk] [-s src-window] [-t dst-window]
               (alias: linkw)
         Link the window at src-window to the specified dst-window.  If dst-window is specified
         and no such window exists, the src-window is linked there.  If -k is given and
         dst-window exists, it is killed, otherwise an error is generated.  If -d is given, the
         newly linked window is not selected.

Это означает, что вы можете обмениваться окном через несколько сеансов:

Assuming I have these 2 sessions:  daemons and proj

tmux link-window -dk -s daemons:0 -t proj:0