Wie ändere ich den Wert des Timeouts für einen Tastenbefehl?

8

Was ich möchte

Zum vorübergehenden Ändern des Timeout-Werts für bestimmte Tastenbefehle

Wo ich gesucht habe

Von habe :help 'timeout'ich:

The timeout only happens when the 'timeout' and 'ttimeout' options
tell so.  A useful setting would be >
    :set timeout timeoutlen=3000 ttimeoutlen=100
(time out on mapping after three seconds, time out on key codes after
a tenth of a second).

Ich bin mir nicht sicher, wie ich dies in einem Schlüsselbefehl implementieren würde oder wie ich die aktuelle Einstellung des Zeitlimits überprüfen soll.

Ich wollte zum Beispiel versuchen hh, an den Anfang einer Zeile zu gehen, aber ich wollte, dass das Zeitlimit für diesen bestimmten Tastenbefehl ziemlich schnell ist, beispielsweise 100 Millisekunden.

Was ich versucht habe

:set timeout timeoutlen=100 ttimeoutlen=100
nmap hh <S-^>
:set timeoutlen=1000 ttimeoutlen=1000
baxx
quelle
2
Einstellungen wie 'timeoutlen'zu dem Zeitpunkt verwendet , dass die Zuordnung wird aufgerufen , nicht erstellt.
Tommcdo

Antworten:

1

Die 'timeoutlen'Option ist ein globaler, und es gilt bei Mapping - Aufruf , nicht während der Definition .

Ich kann Ihre Motivation verstehen (mithilfe eines speziellen hhMappings, während Sie sich dennoch schnell über bewegen hkönnen h), aber ich würde trotzdem von solchen Tricks abraten. Wählen Sie besser eine andere Zuordnung, die sich nicht mit einem integrierten Befehl überschneidet.

Wenn Sie wirklich müssen, schauen Sie sich das Arpeggio-Plugin an . Es werden einige Tricks ausgeführt, um gleichzeitig gedrückte Tasten zuzuordnen.

Ingo Karkat
quelle
danke Ingo, ich werde in letzter Zeit ein bisschen kreativer mit Mappings, brauche aber immer noch die Anleitung von Do's und Don'ts :)
baxx