Wie ordne ich Tmux-Fenster neu an?

Wie ordne ich Tmux-Fenster neu an?

In screenkann ich einfach eingeben, C-a :number 0um ein Fenster an den Anfang der Fensterliste zu verschieben und alle anderen Fenster um eins nach unten zu schieben. Was ist die entsprechende Befehlsfolge für tmux? Ich habe mir die Manpage angesehen, finde sie in diesem Punkt aber verwirrend.

Antwort1

Der swap-windowBefehl kommt Ihrem Wunsch am nächsten.

Mit "Präfix :" (standardmäßig also Ctrl+ B) :gelangt man zur tmux-Eingabeaufforderung. Dort gibt man ein:

swap-window -s 3 -t 1

um Fenster Nummer 3 und Fenster Nummer 1 ihre Positionen tauschen zu lassen.

So tauschen Sie das aktuelle Fenster mit dem obersten Fenster:

swap-window -t 0

Im unwahrscheinlichen Fall, dass beim Index 0 kein Fenster vorhanden ist, gehen Sie wie folgt vor:

move-window -t 0

(wenn der Basisindex 0 ist, wie standardmäßig). Der Befehl move-window -t <NUMBER>ist standardmäßig an Ctrl+ B, gebunden ..

Sie können diesen Befehl an eine Taste binden (z. B. T für „oben“), indem Sie Folgendes zu Ihrer hinzufügen ~/.tmux.conf:

bind-key T swap-window -t 0

Antwort2

Ergänzend zu Gareths Antwort können Sie die folgenden Tastenkombinationen verwenden

bind-key -n C-S-Left swap-window -t -1
bind-key -n C-S-Right swap-window -t +1

Durch Drücken von Strg+Umschalt+Links wird das aktuelle Fenster nach links verschoben. Entsprechend nach rechts. Die Verwendung des Modifikators (Cb) ist nicht erforderlich.

Für die Version tmux 3.0 sollten Sie folgende Tastenkombinationen verwenden

bind-key -n C-S-Left swap-window -t -1\; select-window -t -1
bind-key -n C-S-Right swap-window -t +1\; select-window -t +1

Antwort3

Das Tmux-Äquivalent :number 42ist :move-window -t 42.

Antwort4

Sie können ein Äquivalent zum Befehl screenvon implementieren number, indem Sie ein externes Shell-Skript verwenden, das zwischen swap-windowund wählt move-window. Sie können es folgendermaßen an eine Taste binden:

bind < command-prompt -p index "run-shell '~/.tmux.number.sh %%'"

~/.tmux.number.sh:

#!/bin/bash
if [ $# -ne 1 -o -z "$1" ]; then
    exit 1
fi
if tmux list-windows | grep -q "^$1:"; then
    tmux swap-window -t $1
else
    tmux move-window -t $1
fi

verwandte Informationen