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>

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

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


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.



-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.


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.


Strg-L aktualisiert den Bildschirm. Es macht keinen Unterschied, ob Sie Änderungen an der entsprechenden Syntaxdatei vorgenommen haben.
Alexis Wilke
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.