Wie kann ich das Timeout zwischen Präfixtaste und Befehlstaste in tmux verringern?

Wie kann ich das Timeout zwischen Präfixtaste und Befehlstaste in tmux verringern?

Mein ~/.tmux.conf:

set -g prefix C-a
unbind C-b
bind C-a send-prefix

bind-key o split-window -v
bind-key e split-window -h

bind-key w kill-pane

(um die Befehlstasten mit denen des GNOME Terminators identisch zu machen)

Die Situation: Nachdem ich das Fenster horizontal in zwei Bereiche aufgeteilt und mit dem Ctrl+ a UpPfeil zu einem Bereich gewechselt habe, muss ich eine Weile (2-3 Sekunden) warten, um die Shell-Verlaufsbefehle in diesem Bereich anzuzeigen. Denn wenn ich erneut drücke, Upwird wieder zum anderen Bereich gewechselt, anstatt mir einen Shell-Verlaufsbefehl anzuzeigen. Wie kann ich das abstellen?

Antwort1

Oben, Unten, Links und Rechts ( select-paneBindungen; und Control- und Meta- der gleichen Tasten für resize-pane) sind standardmäßig „wiederholbare“ Bindungen (erstellt über bind-key -r). Nachdem Sie die Präfixtaste und eine beliebige einzelne wiederholbare Taste eingegeben haben, können Sie innerhalb der über die Sitzungsoption angegebenen Anzahl von Millisekunden (der Standardwert beträgt 500 ms) eine beliebige andere wiederholbare Taste eingeben (ohne das Präfix erneut eingeben zu müssen) repeat-time.

Sie können den aktuellen Wert repeat-timemit diesen Shell-Befehlen überprüfen:

tmux show-options -g | grep \^repeat-time     # global
tmux show-options    | grep \^repeat-time     # this session

Wenn Sie die Wiederholung für die aktuelle Sitzung deaktivieren möchten, geben Sie Ihr Präfix und einen Doppelpunkt ein und geben Sie diesen Befehl ein:

set-option repeat-time 0

Oder Sie können einen bequemen Wert ungleich Null finden. Wenn Sie wirklich einen Wert von etwa 2000 (also 2 s) haben, würde ich vermuten, dass er in festgelegt wird /etc/tmux.conf.

Wenn Sie die Wiederholung für alle Ihre Sitzungen deaktivieren (oder das Timeout ändern) möchten, legen Sie den globalen Wert mit diesem Befehl fest:

set-option -g repeat-time 0

Wenn Sie einen Wert pro Sitzung festgelegt haben, müssen Sie ihn aufheben, bevor der globale Wert in dieser Sitzung wirksam wird ( set-option -u repeat-time). Sie können den globalen Wert über Ihre festlegen, .tmux.confwenn Sie ihn lieber „dauerhaft“ ausgeschaltet lassen möchten.

Wenn Sie nur Probleme mit Up haben, können Sie es erneut binden ohne -r:

bind-key Up select-pane -U

Antwort2

Sie können die Wiederholung auch für bestimmte Tastenkombinationen deaktivieren, wenn Sie möchten. Die Standardkombinationen zum Wechseln zwischen Fenstern lassen sich beispielsweise wie folgt zusammenfassen:

bind-key -r Up    select-pane -U
bind-key -r Down  select-pane -D
bind-key -r Left  select-pane -L
bind-key -r Right select-pane -R

Sie können diese ohne die -rFlagge neu erstellen, wie

bind-key    Up    select-pane -U
bind-key    Down  select-pane -D
bind-key    Left  select-pane -L
bind-key    Right select-pane -R

Persönlich bevorzuge ich, dass der Fensterwechsel nicht wiederholbar ist. Die Wiederholung ist gut, wenn Sie ein Fenster in viele kleine Fenster aufgeteilt haben, kann aber zu Tastenkollisionen (wie Sie beschrieben haben) mit den in diesen Fenstern laufenden Anwendungen (wie Shell-Verlauf, Vim usw.) führen, und ich habe normalerweise sowieso nicht mehr als 2 Fenster pro Fenster. Aber jedem das Seine.

verwandte Informationen