Das Problem ist, dass die reguläre Ausdrücke-Engine von Vim sehr langsam ist, und ich denke, Latex ist an Regex ziemlich anspruchsvoll.
Ich konnte vim etwas schneller werden, indem ich Folgendes tat:
:syn clear texSectionFold :syn clear texPreamble
Dies waren die hauptsächlichen beleidigenden Syntaxgruppen-Regexes.
Ich habe sie gefunden, indem ich
:syntime on
Drücken Sie jetzt ctrl+L
eine Tonne Male und warten Sie, bis Vim aufholt. Dann:
:syntime report
Dies ergab folgende Ausgabe:
TOTAL COUNT MATCH SLOWEST AVERAGE NAME PATTERN 8.903872 1911 52 0.017387 0.004659 texSectionFold \v%(%(\\begin\.*$\n)@<=^|\\section) 4.979438 1859 0 0.016382 0.002679 texPreamble \v%(\\documentclass)@= 0.634906 1976 182 0.010863 0.000321 texEnvName \v%(\\%(begin|end)\{)@<=\a+\*?\ze\} 0.373173 1859 0 0.000880 0.000201 texArgsEnvNormReq \v(\\begin\{%(theorem|lemma|proposition|corollary|conjecture|definition|remark|example|proof)\*?\}\s*)@<=\{ 0.317732 1859 0 0.000468 0.000171 texArgsEnvNormOpt \v(\\begin\{%(theorem|lemma|proposition|corollary|conjecture|definition|remark|example|proof)\*?\}\s*)@<=\[ 0.223595 1859 0 0.000341 0.000120 texDimen \v-?%(\.[0-9]+|([0-9]+(\.[0-9]+)?))%(pt|pc|bp|in|cm|mm|dd|cc|sp|ex|em)> ...
Sie sehen also, dass diese beiden Regexen viel teurer sind als andere. Ich verwende keine Falten, daher hatte ich kein Problem, das zu deaktivieren. Nicht sicher, warum es so langsam ist, die Präambel zu finden.
Vielleicht hilft dir das auch, @llinfeng. Hoffentlich!
BEARBEITEN:
Um diese syn clear
Befehle beim Start von vim auszuführen, müssen Sie sie eingeben ~/.vim/after/syntax/tex.vim
. Es funktioniert nicht in einer ftplugin
Datei, da die Syntaxdefinitionen zu diesem Zeitpunkt noch nicht geladen sind.
EDIT2:
Es stellte sich heraus, dass einige der oben genannten Syntaxgruppen von einem Plugin stammen. Das Deaktivieren des Plugins hilft nicht, da andere Syntaxgruppen dann langsam sind. Eesh!
Mein letzter Fix und alles, was ich vom Syntax-Highlight verlange, ist:
$ cat ~/.vim/after/syntax/tex.vim syn clear syn match texComment "%.*$" hi def link texComment Comment
Es ist sehr schnell.