Tmux: Як я можу пов’язати вікно як розділене вікно?


33

як я можу схопити вікно з абсолютно іншого сеансу tmux і приєднати його як горизонтальний / вертикальний розділ до поточного вікна?

Відповіді:


45

Здається, ви шукаєте панель приєднання. Технічно для другої частини вашого питання ви хочете приєднати панель до поточного вікна, а не повне вікно з іншого сеансу, оскільки це може включати кілька панелей.

Ось приклад. Скажімо, ви знаходитесь у сеансі 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.

9
Чи можу я скопіювати панель замість переміщення?
pielgrzym

@pielgrzym Я також хотів би знати відповідь на це. Будь ласка, опублікуйте його тут, якщо знайдете.
Бруно Броноський

Я думаю, що ОП шукала щось подібне до панелі зв’язків, якої, на жаль, не існує. Мабуть, запитувана поведінка може імітуватися за допомогою вкладеного сокета tmux, як пояснено тут: superuser.com/a/323658
elig

16

Якщо ви намагаєтесь приєднатись до панелей з одного і того ж сеансу, ви інстинктивно захочете опустити команду "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 ':%%'"

Приємна прив’язка там.
Нішант
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.