Wie kann ich das Zeitlimit zwischen Präfix- und Befehlstaste in tmux verringern?

45

Meine ~/.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

(Damit die Befehlstasten mit denen von GNOME Teminator identisch sind)

Die Situation: Nach dem horizontalen Teilen des Fensters in zwei Bereiche und dem Wechseln zu einem Bereich mit Ctrl+ a UpPfeil muss ich eine Weile warten (2-3 Sekunden), um die Shell-Verlaufsbefehle in diesem Bereich anzuzeigen. Denn wenn ich erneut drücke Up, wechselt es zurück in den anderen Bereich, anstatt mir einen Shell-Verlaufsbefehl anzuzeigen. Wie kann ich das ablehnen?

Quanten
quelle
Eine potenziell nützliche Alternative ist die Verwendung von STRG + B q. Hier werden die Fensternummern in tmux angezeigt. Durch Drücken von STRG + B q <Nummer> gelangen Sie in dieses Fenster. Auf / Ab ist sofort verfügbar. Sie müssen die Zahl nach q ziemlich schnell eingeben. Es gibt auch eine Zeitüberschreitung, die dies steuert.
Spacen Jasset

Antworten:

53

select-paneHoch , Runter, Links und Rechts ( Bindungen und Kontroll- und Meta-Einstellungen derselben Taste für resize-pane) sind standardmäßig "wiederholbare" Bindungen (hergestellt über bind-key -r). Nach der Eingabe des Präfixschlüssels und eines einzelnen wiederholbaren Schlüssels können Sie einen beliebigen anderen wiederholbaren Schlüssel (ohne das Präfix erneut repeat-timeeingeben zu müssen) innerhalb der in der Sitzungsoption angegebenen Millisekunden eingeben (der Standardwert beträgt 500 ms).

repeat-timeMit diesen Shell-Befehlen können Sie den aktuellen Wert von ü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 den folgenden Befehl ein:

set-option repeat-time 0

Möglicherweise können Sie auch einen bequemen Wert ungleich Null finden. Wenn Sie wirklich einen Wert von ungefähr 2000 (dh 2s) haben, würde ich vermuten, dass er eingestellt wird /etc/tmux.conf.

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

set-option -g repeat-time 0

Wenn Sie einen Wert pro Sitzung festgelegt haben, müssen Sie ihn deaktivieren, damit der globale Wert in dieser Sitzung wirksam wird ( set-option -u repeat-time). Möglicherweise .tmux.confmöchten Sie den globalen Wert über Ihre festlegen, wenn Sie ihn "dauerhaft" deaktivieren möchten.

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

bind-key Up select-pane -U
Chris Johnsen
quelle
4

Sie können die Wiederholung auch für bestimmte Tastenkombinationen deaktivieren, wenn Sie dies wünschen. Die Standardbindungen für das Wechseln zwischen Fenstern lauten beispielsweise:

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önnten diese ohne die -rFlagge wie neu erstellen

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 das nicht wiederholbare Wechseln des Fensters. Wiederholen ist schön, wenn Sie ein Fenster in viele kleine Fensterbereiche unterteilt haben, aber es kann zu Schlüsselkollisionen (wie von Ihnen beschrieben) mit den Anwendungen führen, die in diesen Bereichen ausgeführt werden (wie Shell-Verlauf, vim usw.), und ich normalerweise haben sie sowieso nicht mehr als 2 scheiben pro fenster. Aber für jeden sein eigenes.

ivan
quelle