Vim - Verzögerung beim Verlassen des visuellen Modus


8

Wenn ich ESC drücke, um den visuellen Modus zu verlassen, nachdem ich Text ausgewählt habe, tritt eine merkliche Verzögerung auf, bevor der Text nicht mehr ausgewählt wird und ich in den normalen Modus zurückkehre (auch wenn ich nur 1-2 Zeichen auswähle). Kann diese Verzögerung vermieden werden?

vim  delay 

Antworten:


2

Dies kann dadurch verursacht werden, dass einige zusätzliche Funktionen zugeordnet werden. Zum Beispiel verwende ich das Tabbar-Plugin und es ordnet 0-9 zu, um zum Nummernpuffer zu wechseln. Immer wenn eine Taste zusätzlichen Funktionen wie dieser zugeordnet wird, wartet vim einige Sekunden nach dem Drücken, um festzustellen, ob Sie zusätzliche Tasten drücken werden.

Führen Sie in der ersten Spalte aus :mapund suchen Sie nach zusätzlichen Zuordnungen, um festzustellen, ob zusätzliche Zuordnungen vorhanden sind <Esc>. Bei Ausführung ohne Parameter :mapwerden alle benutzerdefinierten Zuordnungen aufgelistet. Wenn Sie im visuellen Modus nur die Zuordnungen auflisten möchten, führen Sie aus :vmap.

Wenn zusätzliche Zuordnungen vorhanden sind, kenne ich keine Möglichkeit, die Pause zu entfernen, außer die Zuordnungen zu entfernen. Die Pause ist notwendig, damit vim eindeutig weiß, welche Maßnahmen Sie ergreifen möchten.


1
In VT100-ähnlichen Terminals (einschließlich Xterm / Rxvt / PuTTY / GNOME-Terminal) Escist dies auch das Präfix für alle Sondertasten, einschließlich der Pfeiltasten.
Benutzer1686

@grawity: Stimmt, aber Vim verwendet für diese Escape-Sequenzen andere Timeout-Werte als für Zuordnungen, sodass die Behandlung dieser Escape-Sequenzen normalerweise nicht das hier gemeldete Problem verursacht. Siehe :help 'timeout'.
Garyjohn

Danke, das war's. Jetzt muss ich nur noch herausfinden, welche Zuordnungen meine Verwendung beeinträchtigen.

0

Ich habe keine Zuordnung zu <ESC> global oder für den visuellen Modus (Aufruf: verbose vmap <ESC> liefert keine Ergebnisse), aber es gibt immer noch eine erhebliche Verzögerung beim Verlassen des visuellen Modus. Selbst bei Neuinstallationen ohne vimrc ist die Verzögerung vorhanden. Wenn Sie <Cc> verwenden, wird der visuelle Modus unverzüglich beendet.

Da ich nicht gerne <Cc> drücke, um einen Modus zu verlassen, ordne ich <ESC> derzeit im visuellen Modus <Cc> zu. Dies beendet den visuellen Modus mit <ESC> ohne Verzögerung.

:vmap <ESC> <C-c>

Oder fügen Sie die folgende Zeile in Ihr vimrc ein

vnoremap <ESC> <C-c>

Dies funktioniert nicht, wenn Sie globale oder visuelle Moduszuordnungen an <ESC> gebunden haben.


-2

Was Sie noch tun können, ist die Verwendung von CTRL+ C, um den visuellen Modus zu verlassen. Dies sollte die Verzögerung vermeiden.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.