Ich dachte, dass das Verschieben des TMUX-Fensters in das Fenster die gleiche Frage ist, aber es scheint nicht so zu sein.
Da ich GNU screen regelmäßig benutze, suche ich nach tmux, um die gleichen Dinge zu tun. Eines der Dinge, die ich regelmäßig mache, ist, ein paar verschiedene Fenster zu öffnen, eines mit Code, der in vim geöffnet ist, und ein paar Terminalfenster, die geöffnet sind, um den Code zu testen, und manchmal ein oder zwei Fenster für verschiedene andere Dinge. Ich teile den Bildschirm vertikal auf und habe oft das VIM-Fenster im oberen Bereich und dann eines der anderen Fenster im unteren Bereich.
Die Hauptbefehle ich verwende , sind dann Ctrla, Tabzwischen den Scheiben und zu drehen Ctrla, sich nzu drehen zwischen den Fenstern in einem Fensterbereich. Wenn sich beispielsweise vim im oberen Bereich befindet, wechsle ich in den unteren Bereich und drehe mich dann durch die anderen Terminals, wobei ich alles tue, was ich brauche. Der Bildschirm bleibt die ganze Zeit geteilt.
Das Problem ist , ich nicht vergleichbar Fähigkeit Bildschirm finden Ctrla, nin tmux. Das Wechseln zwischen Fenstern scheint in einem Bereich nicht zu funktionieren, springt jedoch vollständig. Wenn der Bildschirm geteilt ist, scheinen die einzigen beiden Optionen zu sein, zu einem Fenster zu springen, das nicht geteilt ist, und es dann zu teilen oder eine Unterteilung eines Fensters durchzuführen. Weder sind, was ich gesucht habe.
Vorschläge (neben dem Festhalten am Bildschirm)?
quelle
tmux
einem Fenster kann in mehrere Bereiche aufgeteilt werden. Versuchen Sie, in einem Fenster mit einer Tastenkombination zwischen den Fenstern zu wechseln?swap-pane
? Wenn Sie nach Bildschirmemulationen suchen,Ctrl-a n
lautet das tmux-ÄquivalentCtrl-b n
.Antworten:
tmux und screen haben unterschiedliche Modelle, daher gibt es kein genaues Äquivalent.
Im Bildschirm gesehen ein Split können Sie mehrere Fenster gleichzeitig anzuzeigen.
next
(C-a n
) dreht Fenster durch den aktiven Teil der Teilung; Auf diese Weise können Sie "versteckte" Fenster durch den aktiven Bereich der Teilung drehen.In tmux- Begriffen unterteilt ein Split ein Fenster in einen oder mehrere Bereiche. Jeder Teil eines geteilten Fensters ist ein einzelnes Fenster, Fenster werden niemals ausgeblendet (wenn ein Fenster ausgewählt (sichtbar) ist, werden auch alle Fenster ausgeblendet), und ein Fenster kann nur in einer einzelnen Teilung eines Fensters verwendet werden (ein Fenster kann) nicht in mehreren Fenstern sein, und es kann nicht in mehreren Teilen desselben Fensters sein). Es gibt Befehle zum Verschieben von Fenstern in (oder zwischen) Fenstern, jedoch nicht auf die gleiche Weise wie
next
auf dem Bildschirm .Sie können eine Bindung wie die folgende verwenden, um einen ähnlichen Effekt zu erzielen:
Sie werden dies wahrscheinlich in Ihre
~/.tmux.conf
Datei einfügen wollen , aber Sie können es einfach eingeben / einfügen Prefix :, um es in Ihre aktuelle Serverinstanz zu binden.Um die Bindung zu verwenden, wählen Sie Ihr „Hauptfenster“ aus, teilen Sie es, erstellen Sie unmittelbar nach dem „Hauptfenster“ ein Fenster mit einem „Fenstercontainer“ und drehen Sie dann mit der Bindung ein beliebiges Fenster im „Hauptfenster“ in der Gruppe „Fenster“. Pane Container “-Fenster.
So können Sie das Setup erstellen:
Wählen Sie ein Fenster aus, das Sie als "Hauptfenster" verwenden möchten. Starte (zB) Vim darin.
Teilen Sie Ihr „Hauptfenster“ in zwei Bereiche auf.
ZB Prefix "(
:split-window
)Sie können diesen Bereich als Testfenster (oder Protokollanzeige oder was auch immer) verwenden.
Erstellen Sie unmittelbar nach Ihrem Hauptfenster ein neues Fenster (den „Fenstercontainer“).
ZB Prefix c(
:new-window
)Es ist wichtig, dass kein anderes Fenster zwischen die Indizes des "Hauptfensters" und des "Fenstercontainers" gelangt (
+
in den Fensterspezifizierern, die in den gebundenen Befehlen verwendet werden, bedeutet dies "das Fenster mit der nächsthöheren Nummer").Teilen Sie dieses Fenster in mehrere Bereiche auf. Teilen Sie dieses Fenster in zwei Bereiche auf, um drei Bereiche zu durchlaufen (der dritte Bereich befindet sich im „Hauptfenster“).
Möglicherweise benötigen Sie eine Shell für Git und eine Shell zum Ausführen einer Datenbankschnittstelle. Legen Sie jedes Element in einem separaten Bereich in diesem Fenster "Bereichsbehälter" ab.
Wechseln Sie zurück zu Ihrem "Hauptfenster". Wählen Sie den Bereich aus, den Sie „herausdrehen“ möchten.
Sie können mit Prefix Up/ Down/ Left/ Rightzwischen den Fenstern wechseln.
Rufen Sie die Bindung auf, um den aktuellen Bereich mit dem ersten Bereich im Fenster „Bereichsbehälter“ zu tauschen und („hinter den Kulissen“) die Bereiche im Fenster „Bereichsbehälter“ zu drehen (sodass beim nächsten Ausführen der Bindung der erste Befehl ausgeführt wird tauscht mit dem "nächsten" Bereich in der Sequenz).
Prefix Control- n(für die Bindung verwenden Sie Cn, aber Sie können dies nach Belieben ändern).
Um rückwärts durch die Fenster zu scrollen, können Sie Folgendes verwenden:
quelle
resize-pane -Z
(standardmäßig an Präfix + z gebunden), dass ein Fenster vorübergehend so „gezoomt“ wird, dass es die volle Größe des Fensters hat. Für Versionen vor 1.8 gab es keine integrierte Möglichkeit, dies zu tun. Andere haben Skriptlösungen aus anderen integrierten Befehlen erstellt (z. B. einige der Antworten auf die SU-Frage „Maximieren“ eines Bereichs in tmux ).C-b o
Fahrradscheiben.Ich glaube , was Sie suchen ist Ctrlb+ ( →, ←, ↑, ↓). Mit diesen können Sie zwischen den Fenstern wechseln.
quelle
Ctrl-b+{
oderCtrl-b+}
? Das ist ungefähr so nah wie ich an dieser Funktionalität finden kann. Pane's werden in tmux nicht so gemacht, wie sie auf dem Bildschirm gehandhabt werden.^b↑
. Wie fokussiere ich dann den markierten Bereich tatsächlich so, dass ein anderer↑
von der Shell erfasst wird, nicht von tmux?Verwenden
bind -r
Sie, um den Bereich zu finden, indem Sieprefix
einmal und dann nacheinander die anderen Tasten drücken . Das Timeout konnte um eingestellt werdenrepeat-time
. Prüfenman tmux
Wenn Sie es vorziehen
hjkl
,quelle
Hier ist eine kleine Konf, mit der Sie mit den Tastenkombinationen ALT oder UMSCHALT + Pfeil zu anderen Fenstern oder Fenstern wechseln können. Keine Notwendigkeit, das Schlüsselpräfix zu verwenden, ist bequem.
Wenn Sie fauler sind als ich, könnte Sie auch der folgende Code interessieren, mit dem Sie mit der Maus durch die Fenster navigieren können. (Verwendung: Tastenpräfix + m zum Einschalten, M zum Ausschalten)
Diese Konfiguration sollte funktionieren. Funktioniert sicher für tmux 1.6 bis 1.9.
quelle
Mit dieser Antwort erhalten Sie zwei Fenster, in denen beide Fenster denselben Satz von Fenstern enthalten, jeder Fensterbereich jedoch unabhängig voneinander zwischen Fenstern wechseln kann.
Der tmux-Ansatz besteht darin, drei Sitzungen zu verwenden:
Ja, das ist die verrückte UNIX-Philosophie . Lass uns anfangen:
Jetzt können Sie in den oberen Bereich wechseln und Vim wie gewohnt öffnen. Um in der inneren Sitzung (dem unteren Bereich) durch die Fenster zu blättern, müssen Sie Ctrl-b Ctrl-b nund verwenden p.
OK, anstatt Vim im oberen Bereich zu öffnen, stellen wir erneut eine Verbindung zu Ihrer inneren Sitzung her. Beenden Sie vim und verwenden Sie dieses Mal einen
new-session
Befehl (insbesondere mit-t
nicht-s
):Voila! Sie können jetzt sowohl im oberen als auch im unteren Fensterbereich durch die Fenster blättern.
Der Grund, warum wir
new-session -t
das zweite Mal verwenden müssen, ist, dass wenn wir es einfach nochattach -t
einmal machen würden, der obere und der untere Bereich synchronisiert würden und immer dasselbe Fenster anzeigen würden, was nicht das ist, was Sie wollen. Damit dieser Bereich unabhängig vom anderen Fensterbereich durch Fenster verschoben werden kann, erstellen wir eine neue Ansichtssitzung, verbinden jedoch das Back-End direkt mit der vorhandenen Sitzung, in der sich die Fenster befinden. Dies wird auch als " Gruppensitzung " bezeichnet. (Übrigens schlägt dieser Link auch vor[un]link-window
, Fenster zwischen Sitzungen zu verschieben.)Natürlich hätten Sie aus Symmetriegründen auch
tmux new-session -t inner
im unteren Fensterbereich ausgeführt werden könnenattach
. In diesem Fall würden Sie 4 Instanzen von tmux ausführen (plus einen weiteren tmux-Prozess für den Server)!quelle
Tragen Sie den folgenden Code in Ihren ein
.tmux.conf
:Laden Sie die Konfiguration neu, und drücken Sie (direkt ohne Präfixtaste) Shift+, →um die Fenster im Uhrzeigersinn und Shift+ ←in umgekehrter Richtung zu wechseln.
Getestet in Tmux 2.8.
Wenn Sie die Konfiguration nicht bearbeiten möchten, ist prefix+ odie Standardtastenbelegung für den Zyklus im Uhrzeigersinn. Ich habe diese Tastenbindung gelegentlich gefunden, dann habe ich den Befehl von
tmux list-keys
und verwende ihn für meine eigenen Tastenbindungen:quelle