Verzögerung bevor 'O' eine neue Zeile öffnet?

82

Ich habe festgestellt, dass es gelegentlich Oeine kurze Verzögerung gibt, bevor etwas passiert , wenn ich (Großbuchstabe 'o') verwende, um eine neue Zeile zu erstellen und in den Einfügemodus zu wechseln.

Ist das üblich? Gibt es eine Möglichkeit, dies zu ändern?

Beide :map Ound :imap Ozeigen "Keine Zuordnung gefunden", daher denke ich nicht, dass es eine seltsame Zuordnung ist.

David Wolever
quelle
Stimmen Sie dem superuser.com zu: Vielleicht liegt dies an der Syntaxhervorhebung, die die Neuberechnung der Formatierung hervorhebt?
Monojohnny
4
Bitte verwenden Sie keine Tags wie " Gehört zum Superuser". Tags sind nicht dazu gedacht, Ihre Meinung zu äußern - siehe meta.stackexchange.com/questions/36819/… . Wenn Sie denken, dass es zu SU gehört, stimmen Sie ab, um es dorthin zu verschieben.
Ich wurde korrigiert. Ich werde diese Tags nicht mehr verwenden. Ich denke immer noch, dass diese sehr gute Frage die Art von Frage ist, die zu SU gehört, und hoffe, sie dort zu finden.
jjclarkson
Ja, sorry - du hast recht. Dies sollte auf SU sein. Gibt es eine schnelle und einfache Schaltfläche, mit der ich sie migrieren kann (und die Antworten?)
David Wolever

Antworten:

91

'esckeys'Dies liegt daran, dass die Option aktiviert ist (eine Folge von dem, nocompatiblewas ich gerade entdeckt habe). Wenn Sie drücken ^[O, tritt eine kleine Verzögerung auf, da sich herausstellt, ob Sie eine Pfeil- / Funktionstaste verwenden oder nur diese beiden Tasten nacheinander gemeint haben.

Eine Lösung besteht darin, diese Option zu deaktivieren und die Pfeiltasten im Einfügemodus aufzugeben.
Eine andere 'timeoutlen'Möglichkeit besteht darin , weniger als 1000, vielleicht 100 einzustellen (aber seien Sie vorsichtig bei langsamen Verbindungen).
Eine andere Möglichkeit besteht darin, den Einfügemodus zu verwenden, ^Canstatt ihn ^[zu verlassen.

Josh Lee
quelle
Cool, danke! Auch für alle anderen, die dies lesen: Überprüfen Sie vor dem Deaktivieren die Hilfeseite auf 'esckeys'- Sie können damit beispielsweise die Pfeiltasten im Einfügemodus verwenden. Die Einstellung 'timeoutlen'hat bei mir gut funktioniert.
David Wolever
3
Auch ttimeoutlenkann Timeout für nur keycodes eingestellt. Siehe vim's:help ttimeoutlen
k107
1
Ich habe immer noch die Verzögerung auch nach :set noesckeysoder :set timeout timeoutlen=1000 ttimeoutlen=100... Irgendwelche Ideen? (Cygwin, VIM aus Quelle zusammengestellt)
Yichuan Wang
1
Hat für mich gut funktioniert mit: set timeout timeoutlen = 3000 ttimeoutlen = 100 (wie in der vim-Hilfe empfohlen). Nur das Timeout auf einen kleinen Wert zu setzen, war eine schlechte Idee - einige Zuordnungen funktionierten nicht mehr.
JKFF
Ich verstehe es nicht Wenn 'esckeys'aktiviert, warum kann ich die Sequenz nicht <esc>[Aim Einfügemodus eingeben, um den Cursor nach oben zu bewegen?
Qian
3

Es passiert, wenn Sie direkt nach der Escape-Taste "O" drücken, oder? Ich habe immer angenommen, dass der Terminaltreiber ein wenig darauf gewartet hat, ob Sie eine Escape-Sequenz abschließen.

Sean
quelle
0

Ich vermute, es ist, wenn Sie die Auslagerungsdatei auf die Festplatte schreiben müssen. Stellen Sie sicher, dass Sie vim auf einem Computer mit schnellem Festplattenzugriff ausführen. Wenn Sie ein freigegebenes Dateisystem verwenden müssen, können Sie versuchen, die Auslagerungsdatei mit zu verschieben

:set directory=/path/to/local/dir
Peter
quelle
Ich stimme dem zu - bei der Arbeit sind unsere Home-Verzeichnisse NFS-gemountet, und ich sehe diese Art von Verzögerung sehr oft.
Cascabel
... natürlich, wenn es nur für O ist, nicht für o, dann ist es sicherlich die Sache mit der Escape-Key-Sequenz, wie Jleedev sagt!
Cascabel
1
Nun, obwohl diese Antwort OP nicht direkt anspricht, halte ich sie immer noch für relevant. Kann der Person, die abgelehnt hat, nicht zustimmen.
Jeffrey Jose
War nicht die Antwort auf das Problem von OP, sondern eine gute Theorie und lehrreiche Erklärung. Vielen Dank!
Supervacuo