Verschieben Sie das Fenster in ein neues Fenster in tmux

156

Ich weiß, dass es in tmux möglich ist, ein Fenster als einen Bereich zu verbinden , aber ist es möglich, einen Bereich in ein eigenes Fenster (einen eigenen Tab) zu verschieben? Ich habe versucht, es in der Manpage nachzuschlagen, konnte es aber nicht finden. Ich denke, es ist möglich, dies über ein Shell-Skript zu tun, aber gibt es einen anderen, eleganteren Weg?

Mikey S.
quelle

Antworten:

166

Relevante tmux-Befehle

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

Bindungen

Sie können die folgenden Bindungen hinzufügen ~/.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 '%%'"

Mit dem obigen Befehl können Fenster zwischen vorhandenen Fenstern verschoben werden.

Um ein Fenster in ein neues Fenster zu brechen, verwenden Sie break-pane (das auch gebunden werden kann) .

Alternative Verwendung

Alle drei Befehle können wie aus der TMux der prompten verwendet werden: <prefix>+:dann break-pane
oder am Shell Prompt (innen TMux) mit: tmux break-pane.

zurückhaltend
quelle
11
Beachten Sie, dass Sie einen Bereich im folgenden Format als Ziel festlegen: "mysession: mywindow.mypane" (wenn in einer anderen Sitzung) und "mywindow.mypane" (wenn in derselben Sitzung). Sie können auch "mysession: progname" verwenden, wenn das in diesem Bereich ausgeführte Programm eindeutig ist.
Ben Davis
15
bind-key !von der anderen Antwort ist alles was ich brauche.
Guaka
137

Aus der Befehlsliste können Sie ersehen, dass es sich um einen Unterbrechungsbereich handelt und der Befehl gerecht ist

Bindeschlüssel!

Wobei bind-key standardmäßig auf Ctrl+ gesetzt istB

jimbog
quelle
5
Gibt es eine weg, um wieder "kaputte" Scheibe anzubringen?
Nazikus
3
@ Nazikus können Sie verwenden join-pane. Wenn Sie keine Bindungen dafür in sehen bind-key ?(ich habe es nicht gesehen), können Sie die Eingabeaufforderung mit aufrufen bind-key :und ausführen join-pane -t <destination pane index>.
Austin Adams
4
Vergiss den Doppelpunkt nicht! Es ist join-pane -t <optional session name>:<destination pane index>zBjoin-pane -t :0
Walf
11

In der neuesten Version von tmux, die von Homebrew unter OSx - 1.9a - installiert wurde, implementiert die Standardschlüsselbindung den Join-Bereich mit einem Menü

bind-key          S choose-window "join-pane -v -s "%%""
bind-key          V choose-window "join-pane -h -s "%%""
Andrew
quelle