Відповіді:
Здається, ви шукаєте панель приєднання. Технічно для другої частини вашого питання ви хочете приєднати панель до поточного вікна, а не повне вікно з іншого сеансу, оскільки це може включати кілька панелей.
Ось приклад. Скажімо, ви знаходитесь у сеансі 0, у вікні 4 та у сеансі 2, що вам потрібно панель вікна 3 1. У запиті tmux ( ctrl+b :
за замовчуванням)
join-pane -s 2:3.1
Це перемістить панель 1 з вікна 3, сеанс 2 (-s - це вихідне вікно і перенесе сеанс форматування: window.pane) на ваш поточний сеанс (сеанс 0).
Нижче наведено повні документи для приєднання до панелі, які ви можете отримати зі сторінки tmux man. Найбільш заплутаною для мене частиною читання документів було з'ясування формату, який очікувався для src-панелей із зазначенням номерів сеансу, вікон та панелей ( 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 на панель приєднання приймають аргумент у вигляді [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 ':%%'"