Відповіді:
Команда зробити це join-pane
в tmux 1.4.
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.
Щоб спростити це, у мене є такі прив'язки для мого .tmux.conf
:
# pane movement
bind-key j command-prompt -p "join pane from:" "join-pane -s '%%'"
bind-key s command-prompt -p "send pane to:" "join-pane -t '%%'"
Перший хапає панель з цільового вікна і приєднує його до поточного, другий робить зворотний.
Потім ви можете перезавантажити свій tmux сеанс, виконавши в сеансі наступне:
$ tmux source-file ~/.tmux.conf
Prefix+s
і введіть ім'я вікна під запитом, щоб надіслати панель до цього вікна ...
відповідь - це відповідь. У мене теж були проблеми з моїми спробами використовувати його на основі документації tmux. Я виявив, що комутатори -t і -s, здається, приймають [session]: вікно, а не вікно [session:]. Тобто, вказати сеанс необов’язково, але включити: обов'язково. (Я використовую tmux 1.5)
Тому для того, щоб додати панель до поточного вікна та розмістити вікно 1 на панелі, командою було б (Ctrl-B або будь-який ваш ключ прив’язки, а потім -) ...
:join-pane -s :1
Потім ви можете розірвати їх за допомогою панелі, яка за замовчуванням становить: Ctrl-B! Якщо ви хочете прив’язати його до ярлика, я пропоную НЕ перекривати прив'язку за замовчуванням, як s, тому що вниз по дорозі ви шукаєте в Інтернеті відповідь, що передбачає сеанс вибору, і він не працюватиме у вашій системі. Зауважте, що панель перерви обов'язково! і @ знаходиться поруч і нічим не прив’язана ні до чого. З цієї причини я пропоную цю обов'язковість ...
bind-key @ command-prompt -p "create pane from:" "join-pane -s ':%%'"
Крім того, мати інтерактивний вибір ...
bind-key @ choose-window 'join-pane -h -s "%%"'
Крім того, щоб завжди приєднуватися до останнього відвідуваного вікна ...
bind-key @ join-pane -h -s !
ПРИМІТКА. -h
Причини змушування панелей горизонтально (з вертикальним розщепленням) на відміну від поведінки за замовчуванням, яка є зворотною.
Найголовніше - це НАВЧАЙТЕ, що б ви не вибрали для ярлика. Тому що, якщо ви просто встановите його і забудете його, ви будете хитатися, опинившись на іноземному сервері. І давайте визнаємо, найважливіше, що дає термінальний мультиплексор, - це надійні сеанси на віддалених серверах.
На цьому завершується моя конверсія з GNU Screen у Tmux. Я ніколи не озирнусь назад.
Насолоджуйтесь!
window.pane
наприклад, join-pane -s 1.0
перемістити панель 0 у вікні 1 у поточне вікно. Детальніше на maciej.lasyk.info/2014/Nov/19/tmux-join-pane
:
очевидно, це більше не потрібно (наприклад, просто робити :join-pane -s 1
). Можливо, це була помилка в попередніх версіях
Я думаю, що мені більше подобається те, що я використовував для переміщення панелей до власного вікна. я використовую
break-pane -t :
Я зрозумів це через експерименти, але це, здається, працює дуже добре. Ви можете легко нав'язати клавіатуру або псевдонім, не вимагаючи сценаріїв.
join-pane
.
Якщо ви не хочете вводити ідентифікатор панелі в підказку, ви також можете використовувати
bind-key j "join-pane -s !"
яка приєднає останню активну панель / вікно до поточного вікна.
unknown command: join-pane -s !
з 1.6.
bind-key j join-pane -s !
Переглянувши інші відповіді та ознайомившись із сторінкою tmux man, я зараз зупинився на наступних вкладках:
bind-key S choose-window 'join-pane -v -s "%%"'
bind-key V choose-window 'join-pane -h -s "%%"'
Це дозволить вам інтерактивно вибирати вікно, яке потрібно приєднати, і відображати мої малі літери s
/ v
прив’язки, щоб створити нові вертикальні / горизонтальні розколи. Якщо хтось знає, як вибрати окремі панелі замість Windows, дайте мені знати.
-v
і -h
не створюють вертикальні та горизонтальні "розколи" відповідно. Вони створюють відповідно вертикальні та горизонтальні « складені панелі ». (Це означає, що вертикально складені панелі мають горизонтальний розкол.) Отже, ви повинні тренувати свій мозок таким чином. Крім того, -v
це за замовчуванням, так що я б залишив це, і лише поклав -h
туди, щоб ваші ~/.tmux.conf
виступи як шпаргалка для вас, щоб подивитися.
За замовчуванням, Ctrl+ b, !буде порушувати активну панель в нове вікно і переключитися на нього.
Де Ctrl+ b- префікс за tmux за замовчуванням .
tmux
Команда ця клавіша виконує це break-pane
(псевдонім: breakp
) як це реалізовано в cmd-break-pane.c
і зв'язала за замовчуванням в замкову bindings.c , як показано в list-keys
(псевдонім: lsk
) виведення команди:
bind-key -T prefix ! break-pane
Вам не доведеться змінювати свої ключові прив’язки.
У той час як панель, яку ви хочете перемістити, має фокус, введіть префікс, а :join-pane -t :1
там, де 1
є номер вікна призначення в одному сеансі. Ви можете перенести його на інший сеанс, попередньо додавши його ім’я, як project:3
. Для мене join-pane
вкладка-автокомплекти від j
.
Додайте команду -h
або -v
переключіться в команду, щоб встановити орієнтацію нового розбиття, створеного в пункті призначення, або просто перейдіть до нього та Префікс +, spaceщоб переставити.