Vim, wie man die Syntaxhervorhebung neu lädt

Antworten:

95

Verwenden :syntax sync fromstart

Ich habe diesen Tipp von http://vim.wikia.com/wiki/Fix_syntax_highlighting erhalten

In diesem Artikel wird auch vorgeschlagen, eine Zuordnung für diesen Befehl zu erstellen, z. B. um F12 zuzuordnen:

noremap <F12> <Esc>:syntax sync fromstart<CR>
inoremap <F12> <C-o>:syntax sync fromstart<CR>
Mike Lippert
quelle
Dies funktioniert, entfernt jedoch die Unterstreichung für die Rechtschreibprüfung. Wie kann man das verhindern?
Alec Jacobson
1
Entschuldigung, ich weiß es nicht. Ich habe nichts mit Rechtschreibprüfung zu tun. Dies kann von Ihrem speziellen Addon abhängen. Wenn sonst niemand antwortet, kann es sich lohnen, eine Frage mit allen relevanten Informationen zu verfassen.
Mike Lippert
3
Am Ende autocmd BufEnter,InsertLeave * :syntax sync fromstarterzwinge ich eine Syntaxsynchronisierung, nachdem ich einen Puffer eingegeben habe. Die Syntaxsynchronisierung wird auch ausgelöst, wenn ein InsertLeaveEreignis eintritt.
Samuel Li
Vielleicht wird dies eines Tages jemand nützlich finden. Verwenden Sie filetype=shoder syntax=shfür Bash und wie, nicht bash. Ich habe irgendwann gebraucht, um das herauszufinden.
Quapka
Ich verwende ein :do SyntaxÄquivalent, :doautocmd Syntaxdas nur ein wenig kürzer ist, damit Sie es nicht binden müssen (zumindest muss ich diesen Befehl nicht so oft aufrufen, also tippe ich ihn einfach ein). Ich verwende es meistens in einigen Dateien, die reguläre Ausdrücke enthalten, die dazu führen, dass die Syntaxhervorhebung unterbrochen wird, wenn ich die Datei über netrw öffne.
Rens Tillmann
52

Versuchen:

:e

Wenn Sie keine nicht gespeicherten Änderungen an der Datei haben.

Oder:

:syn off | syn on
Holygeek
quelle
Erstellen Sie eine Zuordnung, um die Schmerzen zu lindern, so etwas wienmap <F6> :Rmodel|e<CR>
Holygeek
2
Es scheint, dass es einen eingebauten Befehl geben sollte, um die Syntaxhervorhebung zu aktualisieren. Etwas anderes, das zu funktionieren scheint, ist, zu einem anderen Teil der Datei zu springen, wie dem Anfang oder dem Ende, und zurück zu springen, zB:gg``
Keith Pinson
2
": syntax sync fromstart" (ohne Anführungszeichen) hat die Datentyp-Syntaxhervorhebung für Dateien, die manchmal keine Syntaxfarbe aufweisen, nicht neu geladen - ein anhaltendes Problem für mich und Vim aus irgendeinem Grund. ": Syn off | syn on" funktionierte jedoch sofort. ": e!" wird auch das Neuladen durchführen, aber Vorsicht: Nicht gespeicherte Änderungen an Ihrer Datei gehen verloren!
Victoria Stuart
:syn off | syn onändert das Farbschema für mich, was ärgerlich ist
naught101
12

Versuchte alles oben - keiner hat für mich funktioniert.

Das einzige, was funktioniert, ist: :filetype detect Also habe ich eine schnelle Verknüpfung neu zugeordnet :noremap <Leader>,ftd :filetype detect

JESii
quelle
9

Manchmal ist die Syntax in Ordnung, aber alles, was kaputt geht, sind Faltungen. In diesem Fall zxhilft viel.

Aus der VIM-Dokumentation:

zx

Falten aktualisieren: Manuell geöffnete und geschlossene Falten rückgängig machen: 'Faltebene' erneut anwenden und dann "zv" ausführen: Cursorzeile anzeigen. Erzwingt auch die Neuberechnung von Falten. Dies ist nützlich, wenn Sie 'foldexpr' verwenden und der Puffer so geändert wird, dass Falten nicht richtig aktualisiert werden.

Wormer
quelle
5

Eine weitere Option ist:

doautocmd Syntax
Ciro Santilli 郝海东 冠状 病 六四 事件 法轮功
quelle
1
fwiw, dies ist die einzige Antwort, die die Syntax hervorhebt, wenn ich dieses Problem habe ( syntax sync fromstarthabe nichts getan, noch etwas anderes getan!)
TJ Ellis
1
Eine kürzere Version davon wäre:do Syntax
Rens Tillmann
-1

Versuchen:

:Rrefresh!

Dieser Befehl aktualisiert bestimmte zwischengespeicherte Einstellungen und lädt außerdem rails.vim neu .
Es hilft mir, die Syntaxhervorhebung in Rails zu aktualisieren.

Zenbro
quelle
Dies gilt nur für rails.vimund ist keine allgemeine Lösung. Ohne dieses Plugin existiert dieser Befehl nicht.
Charchargin
-1

Sie können auch versuchen:

CTRL-L

Aus den VIM-Dokumenten ( :h CTRL-L):

Löschen Sie den Bildschirm und zeichnen Sie ihn neu. Das Neuzeichnen kann später nach der Verarbeitung von typeahead erfolgen.

Jordanien
quelle
Strg-L aktualisiert den Bildschirm. Es macht keinen Unterschied, ob Sie Änderungen an der entsprechenden Syntaxdatei vorgenommen haben.
Alexis Wilke