So schließen Sie alle Fenster außer dem aktuellen Fenster in tmux

13

Ich habe einen Schlüssel, der gebunden ist, um Fenster nach meinen Wünschen einzurichten, aber manchmal geraten die Dinge durcheinander oder außer Kontrolle und ich möchte alle Fenster schließen und das Skript erneut ausführen. Gibt es einen einfachen tmuxBefehl zum Schließen aller Fenster mit Ausnahme des Fensters, in dem ich mich gerade befinde?

Digitale Kräfte
quelle

Antworten:

21

Sie können den Befehl "kill-pane" verwenden.

 kill-pane [-a] [-t target-pane]
               (alias: killp)
         Destroy the given pane.  If no panes remain in the containing window, it is also destroyed.  The -a option kills all but the pane given with -t.

Wenn Sie zum Beispiel alle Fenster außer Fenster 0 löschen möchten, gehen Sie wie folgt vor:

kill-pane -a -t 0

Wenn Sie nicht wissen, was Ihre Fensternummern sind, können Sie den Befehl "display-panes" verwenden:

 display-panes [-t target-client]
               (alias: displayp)
         Display a visible indicator of each pane shown by target-client.  See the display-panes-time, display-panes-colour, and display-panes-active-colour
         session options.  While the indicator is on screen, a pane may be selected with the '0' to '9' keys.
JC Yamokoski
quelle
1
Vielen Dank, dass ich Kill-Pane verwendet habe, aber ich hatte Probleme, es die ganze Zeit zum Laufen zu bringen. Am Ende teilte ich das Fenster (split-window-h) so, dass ich sicher sein konnte, dass es mehr als ein Fenster gab. Dann tat ich ein (break-pane -d), um meinen aktuellen Frame in ein neues Fenster zu verschieben der Hintergrund. Dann mache ich Kill-Window. Auf diese Weise werde ich in einem Fenster in einem neuen Fenster (das einzige) sein.
Digital Powers
@DigitalPowers Ich mag Ihre Lösung, aber manchmal ist das geteilte Fenster schwer zu finden. Vor allem, wenn Sie viele Fenster schließen. Da ich an einen Schlüssel gebunden habe, habe ich die Hacky-Option "genügend" verwendet swap-pane -U, um den Bereich auf Position 0 zu verschieben, und dann kill-pane -a -t 0.
Edd Steel
6
Hinweis: tmux kill-pane -aAlle außer dem aktuellen Bereich werden abgebrochen. Sie müssen das -tZiel nicht angeben, wenn Sie den aktuellen Bereich mögen.
docwhat
7

Es gibt auch "^ b!" laut http://www.dayid.org/os/notes/tm.html (ich habe es auch ausprobiert und es hat bei mir funktioniert)

George Boulos
quelle
4
Hallo! es sieht so aus, als würde es funktionieren, aber tatsächlich wird dieses Fenster in ein neues "Fenster" verschoben - es wird vom übergeordneten Fenster getrennt - die anderen Fenster sind also noch vorhanden, sie befinden sich nur in einem anderen Fenster.
Brad Parks