Przenieś panel do nowego okna w tmux

155

Wiem, że w Tmux można dołączyć okno jako okienko, ale czy można przenieść okienko do własnego okna (zakładki)? Próbowałem przeszukać stronę podręcznika, ale nie mogłem go znaleźć. Wydaje mi się, że można to zrobić za pomocą skryptu powłoki, ale czy jest jakiś inny, bardziej elegancki sposób?

Mikey S.
źródło

Odpowiedzi:

166

Odpowiednie polecenia tmux

  • join-pane -s
  • join-pane -t
  • break-pane

Wiązania

Możesz dodać następujące powiązania do ~/.tmux.conf:

## Join windows: <prefix> s, <prefix> j
bind-key j command-prompt -p "join pane from:"  "join-pane -s '%%'"
bind-key s command-prompt -p "send pane to:"  "join-pane -t '%%'"

Powyższe umożliwia przenoszenie paneli między istniejącymi oknami.

Aby rozbić panel do nowego okna, użyj break-pane (który można również powiązać) .

Zastosowanie alternatywne

Wszystkie trzy komendy mogą być używane z skłonić tmux za jak: <prefix>+:wtedy break-pane
Albo poprosi powłoki (wewnątrz tmux) z: tmux break-pane.

poważny
źródło
11
Warto zauważyć, że celujesz w okienko przy użyciu następującego formatu: „mysession: mywindow.mypane” (jeśli w innej sesji) i „mywindow.mypane” (jeśli w tej samej sesji). Możesz także użyć „mysession: progname”, jeśli program działający w tym panelu jest unikalny.
Ben Davis
15
bind-key !z drugiej odpowiedzi to wszystko, czego potrzebuję.
guaka,
136

Z listy poleceń możesz zobaczyć, że nazywa się to break-panel, a polecenie jest po prostu

klucz dostępu!

gdzie kluczem powiązania jest domyślnie Ctrl+B

jimbog
źródło
5
czy jest jakiś sposób na przymocowanie tylnej „pękniętej” szyby?
nazikus
3
@nazikus możesz użyć join-pane. Jeśli nie widzisz żadnych powiązań w bind-key ?(nie widziałem), możesz przywołać wiersz polecenia bind-key :i wykonać join-pane -t <destination pane index>.
Austin Adams,
4
Nie zapomnij o dwukropku! Jest join-pane -t <optional session name>:<destination pane index>np.join-pane -t :0
Walf
11

W najnowszej wersji tmux, zainstalowanej z homebrew na OSx - 1.9a - domyślne wiązanie klawiszy implementuje panel łączenia z menu

bind-key          S choose-window "join-pane -v -s "%%""
bind-key          V choose-window "join-pane -h -s "%%""
Andrzej
źródło