Dies scheint eine wirklich blöde Frage zu sein, aber ich habe eine Python-Datei mit einer tausendstelligen Nummer und diese Datei scheint sehr langsam zu laufen. Ich bin mir nicht sicher, ob irgendeine Art von Verarbeitung stattfindet bin mir nicht bewusst.
Ich drücke Line-Up j
und es gibt eine Pause von ~ 1 Sekunde, die sehr schmerzhaft ist!
Ich habe dies nur in der Python-Datei, bei anderen kommt es nicht vor.
Nach dem Löschen der Nummer funktioniert die Datei wieder normal ...
Hier ist die Nummer:
number=("""7316717653133062491922511967442657474235534919493496983520312774506326239578318016984801869478851843858615607891129494954595017379583319528532088055111254069874715852386305071569329096329522744304355766896648950445244523161731856403098711121722383113622298934233803081353362766142828064444866452387493035890729629049156044077239071381051585930796086670172427121883998797908792274921901699720888093776657273330010533678812202354218097512545405947522435258490771167055601360483958644670632441572215539753697817977846174064955149290862569321978468622482839722413756570560574902614079729686524145351004748216637048440319989000889524345065854122758866688116427171479924442928230863465674813919123162824586178664583591245665294765456828489128831426076900422421902267105562632111110937054421750694165896040807198403850962455444362981230987879927244284909188845801561660979191338754992005240636899125607176060588611646710940507754100225698315520005593572972571636269561882670428252483600823257530420752963450""")
Es ist nicht einmal eine Zahl, es ist eine Zeichenfolge.
.txt
. Ich nehme an, dass einige Syntax-Highlight-Regexp-Muster in die Irre gehen.synmaxcol
, eine begrenzte Anzahl festzulegen (z. B. die Breite Ihres Terminals).Antworten:
Ich kann das mit dem reproduzieren, der
syntax/python.vim
mit Vim 7.4.663 ausgeliefert wird.Bei Verwendung von
:syntime
scheint dies auf die folgende Syntaxgruppe / das folgende Syntaxmuster zurückzuführen zu sein:Sie sollten dieses Problem seinem Betreuer melden (sein Name und seine E-Mail-Adresse befinden sich im Header des Skripts).
Übrigens konnte ich dies ursprünglich nicht reproduzieren, da ich von hier aus ein alternatives Syntaxskript verwende . Ein Wechsel dorthin (wenn es Ihren Anforderungen entspricht) wäre auch eine praktikable Lösung.
Edit: Wenn man die wahrscheinliche Ursache genauer untersucht, scheint dies auf die pathologische Leistung der neuen NFA-basierten Regexp-Engine zurückzuführen zu sein. Mit
:set regexpengine=1
sehe ich keine große Verlangsamung. Ein möglicher Workaround / Fix wäre also, für diese Syntaxübereinstimmung auf die alte Engine zu wechseln. Dies kann durch Voranstellen\%#=1
des Musters (vgl.:help NFA
) erfolgen.quelle
/usr/share/vim/vim74/syntax
der der Entwickler ganz oben stehtNeil Schemenauer <[email protected]>
. Kann ich dich fragen; haben Sie deshalb ursprünglich Syntaxdateien geändert? Danke