Folgen der Einstellung der Escape-Zeit 0 für den Multiplexer?

16

Ich stelle fest, dass beim Ausführen von (neo) vim inside tmuxdie Escape-Taste verzögert ist. Dies wird durch Putten behoben

set -sg escape-time 0

in meinem .tmux.conf. Vermutlich deaktiviert dies die Möglichkeit, ESC als "Meta" -Schlüssel zu verwenden. Unter der Annahme, dass ich immer mit Tastaturen arbeite, die eine Alt-Taste als "Meta" haben, frage ich mich, welche potenziell unerwünschten Konsequenzen diese Einstellung haben könnte.

Michael Goerz
quelle

Antworten:

16

Das Setzen escape-timeauf Null stört das Erkennen von Funktionstasten durch den tmux. Die Handbuchseite sagt

escape-time time
Stellen Sie die Zeit in Millisekunden ein, die tmux nach der Eingabe eines Escape wartet, um festzustellen, ob es Teil einer Funktion oder einer Metatastenfolge ist. Der Standardwert beträgt 500 Millisekunden.

Der Begriff "Funktionstaste" bezieht sich auf alles, was dieses Format hat (einschließlich Pageup, das beim Scrollen mit tmux verwendet wird, und Cursortasten). 500 Millisekunden können zu lang sein, wenn Sie niemals remote arbeiten. 20 Millisekunden können für lokale Verbindungen verwendet werden. Das Analogon ESCDELAYin ncurses ist standardmäßig 1000 Millisekunden; Nur ein sehr kleiner Teil der Benutzer hält es für erforderlich, dies zu ändern.

Thomas Dickey
quelle
hmm ... Pfeiltasten und Pageup scheinen in tmux gut zu funktionieren, auch wenn die Escape-Zeit auf 0 gesetzt ist
Michael Goerz,
1
Die Dokumentation bezieht sich auf Tastenbelegungen, die von tmux verarbeitet werden (nicht von Anwendungen, die in tmux ausgeführt werden).
Thomas Dickey
@AntoineCotten Könnten Sie das näher erläutern? Ich dachte, das Metaschickte nichts, bis es mit einer nicht funktionierenden Taste gepaart wurde. Zu diesem Zeitpunkt würde es das Escape und die Taste "zur gleichen Zeit" senden (weniger Verzögerung als jede angemessene Abfrageperiode, vorausgesetzt, es wird abgefragt, anstatt Interrupts zu verwenden, oder Ich bin meinem Bauchgefühl gefolgt und habe das Escape-Zeitlimit nie unter 10 gesetzt, hauptsächlich, weil ich damit gerechnet habe, dass es Probleme verursacht, wenn der Standardwert so hoch ist.
John P
Das Verhalten von Meta hängt vom Terminal ab. tmuxhat keine Kontrolle darüber, kennt aber die Sonderschlüssel von xterm (in einer Tabelle). Meta für einen gewöhnlichen Schlüssel in xterm macht etwas (siehe eightBitInputHandbuch). Für andere Terminals kann es etwas tun, ist aber normalerweise nicht dokumentiert.
Thomas Dickey
@JohnP @ThomasDickey Ich habe zuvor kommentiert, dass Einstellungen escape-timeauf 0 die Meta- Befehle in meinem Terminal-Emulator beeinträchtigen . Ich würde gerne eine Korrektur vornehmen, dies galt nur, weil das macOS-Terminal Escals Metaschlüssel verwendet . Es gibt keine Probleme, wenn Sie eine andere Taste wie Alt verwenden . Entschuldigung für den irreführenden (gelöschten) Kommentar.
Antoine Cotten