Bewegungsverzögerung bei Zeilen mit 40 oder mehr Symbolen

363
Anders Johansson

Ich mag es, Quellcode visuell durch lange Kommentarzeilen zu begrenzen: In C ++ verwende ich 80 /Zeichen, in Python 80 #Zeichen usw. Im Laufe der Jahre habe ich festgestellt, dass Vim gelegentlich Schluckauf hat (reagiert etwa eine halbe Sekunde lang oder so). wenn ich mich bewege; Heute habe ich festgestellt, dass dies nur in meinen Trennlinien auftritt.

Zum Beispiel:

line 1 line 2 //////////////////////////////////////////////////////////////////////////////// line 4 line 5 

Wenn sich der Cursor überall auf der Linie 3 ist, jede Bewegung (oben, unten, Seite oben, Seite unten, links, rechts, $, 0, ...) zeigt fast immer die Verzögerung; auf anderen Linien nicht.

Mit diesem herumspielen habe ich festgestellt:

  • Die Verzögerung erscheint auf den Leitungen mit insgesamt 40 oder mehr Symbolen (aufzutreten /, -, =, ., #usw.) überall auf der Linie, nicht einschließlich _(vielleicht weil Strich ist in der Definition eines Vim enthält word).
  • Die Verzögerung scheint sich bei längeren Leitungen nicht zu erhöhen. Zeilen mit 1000 /Zeichen haben beispielsweise eine ähnliche Verzögerung wie 40 /Zeichen.
  • Die Verzögerung tritt nur ein, wenn eine "neue" Bewegung von dieser Linie aus gestartet wird. Wenn Sie die OS-Tastenwiederholung zum Durchlaufen der Zeile verwenden, wird keine Verzögerung hinzugefügt.
  • Die Verzögerung scheint nicht zu Syntaxhervorhebung oder Plugins Zusammenhang: Ich sehe das gleiche Verhalten mit vim -u NONE, syntax offund filetype=.
  • GUI Vim (gvim) scheint dieses Problem nicht zu haben.

Ich verwende MacVim 8.0 von macports in der Terminal-App auf einem MacBook Pro, aber das von Apple bereitgestellte Standard-Vim 7.4 weist dasselbe Verhalten auf.

Ich konnte keine Erwähnung in Google, Stack Overflow oder Super User finden, aber es ist auf meinem System sehr gut reproduzierbar.

Ist das ein bekanntes Problem? Gibt es eine Laufzeiteinstellung oder eine Build-Option, die dies steuert (maximal unterstützte Symbole in einer Zeile oder etwas) oder eine Problemumgehung, die dies erleichtert?

2
Haben Sie beim Debuggen von https://stackoverflow.com/questions/12213597/how-to-see-which-plugins-are-making-vim-slow#12216578 etwas gefunden, obwohl dies nicht mit Plugins zusammenhängt Michael vor 7 Jahren 0
@Michael Danke für den Tipp - leider ist die Version von vim, die ich bei der Arbeit verwende, nicht mit `profile`-Unterstützung ausgestattet. Zu Hause habe ich ein Upgrade von Macports auf das neueste MacVim durchgeführt, um dies zu testen, aber das Problem mit der Verzögerung wurde behoben. Ich bin immer noch an einer Problembehandlung interessiert, da ich die bei der Arbeit angebotene Version nicht ändern kann. Anders Johansson vor 7 Jahren 0

0 Antworten auf die Frage