Czy po wykonaniu tej czynności można przenieść działające polecenie w okienku do innej sesji Tmux?
Czy po wykonaniu tej czynności można przenieść działające polecenie w okienku do innej sesji Tmux?
Odpowiedzi:
Tak, to całkiem proste, użyj move-pane
polecenia tmux. Aby uzyskać więcej informacji, uruchom
man tmux | less -I '+/mOVE-pane'
Trudną częścią jest po prostu wiedza, w jaki sposób tmux odwołuje się do sesji, okien i paneli w poleceniach do manipulowania panelami itp.
Przejdź do panelu, który chcesz przejść do drugiej sesji
Uzyskaj nazwę sesji docelowej, uruchamiając <prefix>s
.
W moim systemie produkującym:
(0) + 0: 8 windows (attached)
(1) + 1: 1 windows
^
|
This is the session name. It could be different
on your system and it could be a word (not just a number).
<prefix>:move-pane -t <session_name>:<window number>
^^^^^^^^^^^^^^ the name from above goes in here
Więc w moim systemie przeniosłem się do panelu z uruchomionym procesem
<prefix>:move-pane -t 1:1
a okienko z procesem zostało przeniesione do okna pierwszego w sesji 1
.
Zostaje wstawiony jako podział, więc zwykle chcesz uruchomić okno w drugiej sesji jako okno wychodzące.
Uwaga: wydaje się, że okno docelowe musi istnieć, w przeciwnym razie move-pane
polecenie spowoduje błąd.
Aby uzyskać więcej informacji na temat formatu określania sesji, okien i paneli w komendzie tmux, zobacz sekcję COMMANDS
w man tmux
.
Nie mogę komentować, więc umieszczę to tutaj: dla tmux 2.1-3build1 ~ precyzyjne polecenie powinno być:
<prefix>:move-pane -t session_name:window_number
- potrzebujesz -t
nazwy „ ” przed nazwą sesji (niekoniecznie liczby), a okno z danym numerem musi istnieć.
Cała reszta jest taka, jak opisano w odpowiedzi na pytanie: the_velour_fog .
PS Jeśli wpiszesz tylko „ session_name
bez” window_number
:
<prefix>:move-pane -t session_name:
,
wtedy panel zostanie przeniesiony do bieżącego okna sesji docelowej (i to okno zostanie podzielone).
PPS Jeśli chcesz tylko przenieść okno (a nie tylko panel), to jest dobra odpowiedź na temat przenoszenia okna między klientami tmux :
<prefix>:move-window [-d] [-s src-window] [-t dst-window]
(alias: movew)
gdzie src-window
i dst-window
mieć formę session:window.pane
.
Mam dwie sesje, każda w swoim własnym iTerm. Wszystko, co musiałem zrobić, aby przenieść panel z jednej sesji do drugiej, to
wybierz okienko
<leader>s <session>
gdzie <session>
jest liczba w nawiasach kwadratowych
tmux 2.7
<prefix>m
, przejdź do okna docelowego za pomocą<prefix>w
i przenieś zaznaczony panel za pomocąjoin-pane
.