# vim --version
VIM - Vi IMproved 7.4 (2013 Aug 10, compiled Mar 31 2015 23:36:07)
# cat /root/.vimrc
map <F2> :w\|!sh % <cr>
map <F3> :w\|!bash % <cr>
map <F4> :w\|!python % <cr>
map <F5> :w\|!python % &<cr>
highlight RedundantWhitespace ctermbg=DarkBlue guibg=red
match RedundantWhitespace /\s\+$\|\t/
syntax on
highlight Comment ctermfg=green
Ich fange an, Highcharts zu bearbeiten. Beispiel htm:
# vi /var/www/js/highcharts/examples/dynamic-master-detail/index.htm
Ich bin durch den Code navigieren und ich verwende nur die Pfeiltasten und die Home, Page Up, Page Downund EndTasten.
Nach 2 Minuten tritt dieser visuelle Fehler auf; Die Hälfte des Bildschirms unter meinem Cursor verliert seine Syntaxhervorhebung und wird einfarbig. Wenn ich Page Downoder Page Updrücke, wird die Syntaxhervorhebung wiederhergestellt.
Jeder HTML-Code mit Javascript ist betroffen.
minlines
Einstellung für Ihre aktuelle Syntaxhervorhebung zu erhöhen ? Dh:syn sync minlines=800
(nach Bedarf anpassen).Antworten:
Dies könnte ein Problem mit dem vim-System zum Erkennen und anschließenden Hervorheben syntaktischer "Schlüsselwörter" sein, die nicht genügend Kontext zum Erkennen von Schlüsselwörtern erhalten.
Die grundlegenden Konzepte des Syntaxsystems von vim (Suchen und Kennzeichnen grundlegender Syntaxelemente) werden in erläutert
:h usr_44
Grundsätzlich verwendet vim Regex, um syntaktische Elemente in einer Datei zu erkennen. Sobald diese identifiziert sind, werden Hervorhebungsregeln angewendet, um diese Codekonstrukte einzufärben (dh "Syntaxhervorhebung" durchzuführen), aber wie in
:h 44.10
vim erläutert, beginnt das Parsen nicht mit dem Am Anfang der Datei werden einige Zeilen (z. B. 10 oder 100 Zeilen) vom oberen Rand Ihres aktuellen Ansichtsfensters nach oben gestartet.Wenn ein syntaktisches Konstrukt, z. B. ein sich öffnendes HTML-Tag oder eine Funktionsdefinition usw., höher beginnt als der Punkt, an dem vim mit dem Parsen beginnt, wird der reguläre Ausdruck der vims-Syntax unterbrochen.
Um dies zu beheben, erhöhen Sie normalerweise den Punkt, an dem vim mit dem Parsen beginnt.
Um herauszufinden, wie viele Zeilen über der obersten Zeile des Ansichtsfensters vim mit der Analyse beginnt, verwenden Sie Folgendes:
Hier ist meine Ausgabe beim Anzeigen einer HTML-Datei:
Wenn ich ein Problem mit der Synchronisierung hätte - nur für diese Datei - würde ich die Minlines mit erhöhen
Wenn Sie dieses Problem wiederholt beheben, ist es etwas schwieriger. Dies liegt daran, dass der Synchronisierungswert häufig in einer Syntaxdatei festgelegt wird, die dem von Ihnen bearbeiteten
syntax sync minlines
Dateityp zugeordnet ist , z. B. für mich, dass HTML-Dateitypen in der Syntaxdatei festgelegt sindSyntaxanalyse und Konfigurationswerte für CSS-Dateien sind in
Shell ist in
sh.vim
und so weiter.Diese Syntax - Skripten nur zu dem Zeitpunkt Sie eine Datei des Typs öffnen laufen
foo.css
,bar.html
,baz.sh
usw., also eine Zeile in Ihrer vimrc Einstellung wird nicht funktionieren , weil diese Skripte würden davon entfernt Ihre Einstellungen blasen, eine Lösung ist eine autocmd welche Auslöser , wenn Sie verwenden Geben Sie die Datei einquelle
Ich bekomme diese mit
CMakeList.txt
Dateien. Es ist Teil des Syntaxhervorhebungsmechanismus. Ich bekomme es auch in "langem" (ein paar Seiten wirklich) HTML, wo ichJavaScript
Code habe. Für diese verwende ich den folgenden Befehl:In den meisten Fällen wird das Problem dadurch behoben.
Beachten Sie, dass der Befehl vim sehr langsam macht, wenn Sie eine wirklich große Datei bearbeiten. In den meisten Fällen ist die "Langsamkeit" für mich mehr als erträglich.
quelle