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) ...
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 ...
Alternativ können Sie eine interaktive Auswahl treffen ...
Alternativ können Sie sich immer dem zuletzt besuchten Fenster anschließen ...
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!
quelle
window.pane
beispielsweise geholfenjoin-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 VersionenIch denke, ich mag es besser, was ich verwendet habe, um Scheiben an ihr eigenes Fenster zu bewegen. ich benutze
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.
quelle
join-pane
.Wenn Sie die Fenster-ID nicht in eine Eingabeaufforderung eingeben möchten, können Sie auch verwenden
Dadurch wird der letzte aktive Bereich / das letzte aktive Fenster mit dem aktuellen Fenster verbunden.
quelle
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:
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.quelle
-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.Schlüsselbindung
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 .
Einzelheiten
Der
tmux
Befehl, den dieser Schlüssel ausführt, istbreak-pane
(alias :) wie in key-bindings.cbreakp
implementiertcmd-break-pane.c
und standardmäßig gebunden, wie in der Befehlsausgabe (alias :) zu sehen :list-keys
lsk
quelle
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
wo1
sich die Nummer des Zielfensters in derselben Sitzung befindet. Sie können es in eine andere Sitzung verschieben, indem Sie dessen Namen voranstellenproject:3
. Für michjoin-pane
tab-autocompletes ausj
.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.quelle