Dies ist ein wirklich alter Post, aber ich hatte das gleiche Problem: manchmal Syntax-Highlight würde nur aufhören zu arbeiten, wenn Sie den Javascript-Abschnitt in einer .html
Datei. Wie das OP erwähnt, war ein schneller Workaround, um nach oben zu scrollen und dann magisch wieder etwas zu markieren.
Heute fand ich das zugrunde liegende Problem und eine gute Lösung. In Vim verwendet die Syntaxhervorhebung einen Kontext, um die richtige Hervorhebung abzuleiten, wobei der Kontext durch die vorherigen Zeilen definiert wird.Es ist möglich, durch Ausgabe von :syntax sync minlines=200
anzugeben, wie viele Zeilen vor der aktuellen Zeile verwendet werden. In diesem Fall werden bis zu 200 vorherige Zeilen als Kontext verwendet. Es ist möglich, die gesamte Datei (die für lange Dateien langsam sein kann) zu verwenden, indem Sie :syntax sync fromstart
ausführen.
Sobald ich das gefunden, habe ich diese Zeile in meinem .vimrc
:
autocmd BufEnter *.html :syntax sync fromstart
Hierdurch .html
Dateien die gesamte Datei als Kontext verwendet wird. Daher wird der JavaScript-Abschnitt immer richtig hervorgehoben, unabhängig davon, wie lang der JS-Abschnitt ist. Hoffe das hilft jemand anderen da draußen!
Schön. Es unterstützt sogar die Hervorhebung für jsdoc. Vielen Dank! – asksol
Vorsicht: Ich stelle fest, dass der Autor des verbesserten Textmarkers in der neuesten Version von der Syntax-Synchronisierung weg geändert wurde ... Das Problem, das Sie gesehen haben, kann also in diesem Textmarker auftreten. Sieht aus wie in der Vergangenheit, es hat immer von Anfang an getan. –
Ich habe sowohl das 9/12/08 Release als auch das Release vom 17.05.07 ausprobiert und keines verbessert die Situation. Das Öffnen einer komplexen Javascript-Datei in der Mitte führt immer noch zu keiner Hervorhebung, und ich muss mehrere Seiten scrollen, damit vim korrekt hervorhebt. –