Antworten:
Der Befehl dazu ist join-pane
in 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.
Um dies zu vereinfachen, habe ich diese Bindungen in meinem .tmux.conf
dafür:
# 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 '%%'"
Der erste greift nach dem Fenster des Ziels und verbindet es mit dem aktuellen Fenster. Der zweite greift in umgekehrter Reihenfolge.
Anschließend können Sie Ihre tmux-Sitzung neu laden, indem Sie in der Sitzung Folgendes ausführen:
$ tmux source-file ~/.tmux.conf
Prefix+s
Join-Bereich ist die Antwort. Ich hatte auch Probleme mit meinen Versuchen, es basierend auf der tmux-Dokumentation zu benutzen. Ich habe festgestellt, dass die Schalter -t und -s anscheinend das Fenster [session]: und nicht das Fenster [session:] akzeptieren. Das heißt, die Angabe der Sitzung ist optional, die Angabe des: ist jedoch obligatorisch. (Ich benutze tmux 1.5)
Um dem aktuellen Fenster ein Fenster hinzuzufügen und Fenster 1 in das Fenster einzufügen, lautet der Befehl daher (Strg-B oder was auch immer Ihre Bindetaste ist, gefolgt von) ...
:join-pane -s :1
Sie können sie dann mit dem Trennfenster teilen, das standardmäßig lautet: Strg-B! Wenn Sie es an eine Verknüpfung binden möchten, schlage ich vor, eine Standardbindung wie s NICHT zu überschreiben, da Sie später im Internet nach einer Antwort suchen, die eine Auswahlsitzung beinhaltet und auf Ihrem System nicht funktioniert. Beachten Sie, dass die Trennscheibe gebunden ist an! und @ ist direkt daneben und standardmäßig an nichts gebunden. Aus diesem Grund empfehle ich diese Bindung ...
bind-key @ command-prompt -p "create pane from:" "join-pane -s ':%%'"
Alternativ können Sie eine interaktive Auswahl treffen ...
bind-key @ choose-window 'join-pane -h -s "%%"'
Alternativ können Sie sich immer dem zuletzt besuchten Fenster anschließen ...
bind-key @ join-pane -h -s !
HINWEIS: Dies -h
bewirkt, dass die Fenster horizontal gestapelt werden (mit vertikaler Aufteilung), im Gegensatz zum umgekehrten Standardverhalten.
Das Wichtigste ist, dass Sie LERNEN, was immer Sie sich für eine Verknüpfung entscheiden. Denn wenn Sie es nur setzen und vergessen, werden Sie bestürzt, wenn Sie sich auf einem fremden Server befinden. Und seien wir ehrlich: Das Wichtigste, was ein Terminal-Multiplexer Ihnen bietet, sind zuverlässige Sitzungen auf Remote-Servern.
Damit ist meine Konvertierung von GNU Screen zu Tmux abgeschlossen. Ich werde niemals zurückblicken.
Genießen!
window.pane
beispielsweise geholfen join-pane -s 1.0
, Fenster 0 in Fenster 1 in das aktuelle Fenster zu verschieben. Weitere Informationen unter maciej.lasyk.info/2014/Nov/19/tmux-join-pane
:
anscheinend nicht mehr benötigt (zB einfach machen :join-pane -s 1
). Vielleicht war das ein Fehler in früheren Versionen
Ich denke, ich mag es besser, was ich verwendet habe, um Scheiben an ihr eigenes Fenster zu bewegen. ich benutze
break-pane -t :
Ich habe es durch Experimente herausgefunden, aber es scheint sehr gut zu funktionieren. Sie können es einfach per Keybind oder Alias verknüpfen, ohne dass ein Skript erforderlich ist.
join-pane
.
Wenn Sie die Fenster-ID nicht in eine Eingabeaufforderung eingeben möchten, können Sie auch verwenden
bind-key j "join-pane -s !"
Dadurch wird der letzte aktive Bereich / das letzte aktive Fenster mit dem aktuellen Fenster verbunden.
unknown command: join-pane -s !
mit 1.6 zurecht.
bind-key j join-pane -s !
Nachdem ich die anderen Antworten durchgesehen und die tmux-Manpage durchgesehen hatte, entschied ich mich für die folgenden Bindungen:
bind-key S choose-window 'join-pane -v -s "%%"'
bind-key V choose-window 'join-pane -h -s "%%"'
Auf diese Weise können Sie das zu verbindende Fenster interaktiv auswählen und meine Kleinbuchstaben s
/ v
Bindungen spiegeln , um neue vertikale / horizontale Teilungen zu erstellen. Wenn jemand weiß, wie man einzelne Fenster anstelle von Fenstern auswählt, lass es mich wissen.
-v
und -h
keine vertikalen bzw. horizontalen "Splits". Sie erzeugen vertikale und horizontale " gestapelte Scheiben ". (Das heißt, dass vertikal gestapelte Scheiben horizontal geteilt sind.) Sie müssen also Ihr Gehirn auf diese Weise trainieren. Auch -v
ist die Standardeinstellung, also würde ich das weglassen und es nur einfügen, -h
damit Sie es ~/.tmux.conf
als Spickzettel ansehen können.
In der Standardeinstellung Ctrl+ b, !würde bricht die aktive Scheibe in ein neues Fenster und wieder aufgerufen werden .
Wo Ctrl+ bist der Standard - Präfix für tmux .
Der tmux
Befehl, den dieser Schlüssel ausführt, ist break-pane
(alias :) wie in key-bindings.cbreakp
implementiert cmd-break-pane.c
und standardmäßig gebunden, wie in der Befehlsausgabe (alias :) zu sehen :list-keys
lsk
bind-key -T prefix ! break-pane
Sie müssen Ihre Tastenkombinationen nicht ändern.
Während der Bereich, den Sie verschieben möchten, den Fokus hat, geben Sie Prefix ein, und geben Sie an, :join-pane -t :1
wo 1
sich die Nummer des Zielfensters in derselben Sitzung befindet. Sie können es in eine andere Sitzung verschieben, indem Sie dessen Namen voranstellen project:3
. Für mich join-pane
tab-autocompletes aus j
.
Fügen Sie dem Befehl ein -h
oder einen -v
Schalter hinzu, um die Ausrichtung des im Ziel erstellten neuen Splits festzulegen, oder navigieren Sie einfach zu diesem Befehl und wählen Sie Präfix +, spaceum die Reihenfolge zu ändern.