Odpowiedzi:
Wygląda na to, że szukasz okienka łączenia. Technicznie do drugiej części pytania chcesz dołączyć okienko do bieżącego okna, a nie pełne okno z drugiej sesji, ponieważ może to obejmować wiele okien.
Oto przykład. Powiedzmy, że jesteś w sesji 0, oknie 4 i w sesji 2, że chcesz okienko okna 3 1. W monicie tmux ( ctrl+b :
domyślnie)
join-pane -s 2:3.1
Spowoduje to przeniesienie okienka 1 z okna 3, sesji 2 (-s jest oknem źródłowym i przyjmuje format session: window.pane) do bieżącej sesji (sesja 0).
Poniżej znajdują się pełne dokumenty dotyczące panelu dołączania, które można uzyskać ze strony man tmux. Najbardziej mylącą częścią dla mnie podczas czytania dokumentów było ustalenie formatu, który był oczekiwany dla src-pane, określając numery sesji, okien i okien ( session:window.pane
na powyższym przykładzie). Możesz także nazwać swoje sesje i okna oraz używać tych nazw zamiast numerów indeksu.
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.
Jeśli próbujesz dołączyć panele z tej samej sesji, instynktownie zechcesz pominąć „session:” w poleceniu. To się nie powiedzie. Wygląda na to, że przełączniki -s i -t do panelu łączenia akceptują argument w postaci [session]: window [.pane] zamiast [session:] window [.pane]
Innymi słowy, sesja jest opcjonalna, a: jest obowiązkowe. To jest głupie. Byłby to odpowiednik przeglądarek wymagających http://google.com:/ jako wersji skrótu http://google.com:80/ i dających błąd http://google.com/ o_O
Od ctrl-b! dzieli bieżący panel na osobne okno (co jest przeciwieństwem tego, co chcemy zrobić), a ctrl-b @ (który jest tuż obok!) jest domyślnie niezwiązany (co oznacza, że niczego nie zastępujesz) Sugeruję utworzenie tego skrótu ...
bind-key @ command-prompt -p "create pane from:" "join-pane -s ':%%'"