Как я могу получить окно из совершенно другой сессии tmux и прикрепить его как горизонтальное / вертикальное разделение к текущему окну?
2 ответа
Звучит так, как будто вы ищете объединенную панель. Технически для второй части вашего вопроса вы хотите присоединить панель к текущему окну, а не к полному окну из другого сеанса, поскольку это может включать несколько панелей.
Вот пример. Допустим, вы находитесь в сеансе 0, окне 4 и в сеансе 2, для которого требуется панель 1 окна 3. В приглашении tmux (по умолчанию ctrl+b :
:)
join-pane -s 2:3.1
Это переместит панель 1 из окна 3, сеанс 2 (-s является исходным окном и принимает формат сеанса:window.pane) в текущий сеанс (сеанс 0).
Ниже приведены полные документы для join-pane, которые вы можете получить на man-странице tmux. Самым запутывающим моментом для меня при чтении документов было выяснение формата, который ожидался для src-pane с указанием номеров сессий, окон и панелей (session:window.pane
в приведенном выше примере). Вы также можете назвать свои сеансы и окна и использовать эти имена вместо номеров индексов.
join-pane [-dhv] [-l size | -p percentage] [-s src-pane] [-t dst-pane]
(alias: joinp)
Like split-window, but instead of splitting dst-pane and
creating a new pane, split it and move src-pane into the
space. This can be used to reverse break-pane.
Если вы пытаетесь объединить панели из одного сеанса, вы инстинктивно захотите пропустить «session:» в команде. Это не удастся. Похоже, что переключатели -s и -t в join-pane принимают аргумент в виде [session]:window [.pane] вместо [session:] window [.pane]
То есть, сессия необязательна, а: обязательна. Это глупо Было бы равносильно тому, что браузеры требуют http://google.com:/ в качестве сокращенной версии http://google.com:80/ и сообщают об ошибке http://google.com/ o_O
С Ctrl-B! разбивает текущую панель на отдельное окно (что противоположно тому, что мы хотим сделать), и ctrl-b @ (что рядом!) по умолчанию не связан (то есть вы ничего не перезаписываете). Я предлагаю создать этот ярлык ...
bind-key @ command-prompt -p "create pane from:" "join-pane -s ':%%'"