2013-02-08 4 views
7

Ich benutze vim, um einige Python-Dateien zu bearbeiten und vor kurzem kommt es sporadisch vor, dass die Syntax-Hervorhebung verschwindet, nachdem ich den Puffer in VIM speichern. Ich habe versucht, syntax on und set filetype=python aber vergebens zurückzustellen. Ich habe keine Ahnung, was dieses Problem überhaupt verursacht, also habe ich jetzt eine minimale diagnostische Information. Aber ist das schon einmal vorgekommen, oder wo könnten die Dinge zusammenbrechen?Syntax Hervorhebung zufällig verschwindet während der Datei speichern

+0

Können Sie Ihre vimrc posten? – mindvirus

+0

Und welche Plugins? – Kevin

+0

@mdkess Es ist ziemlich lang, ich lade es einfach auf pastebin http://pastebin.com/dggSfKkX – nye17

Antwort

5

Dies ist keine Lösung, aber es ist schwer zu schreiben/lesen in den Kommentaren.

Ich meinte, dass ich mit Syntax/Hervorhebung herumalberte, als ich anfing, meine eigene .vimrc zu reparieren, deshalb bemerkte ich es.
syntax on/syntax enable bereitet sich nur auf das Laden von Dateien vor (Hinzufügen einer Menge au zu BufNewFile/BufRead). Wenn also ein Plugin beim Schreiben der Datei mit den Syntax-/Hervorhebungs-Einstellungen rumhängt, muss die Datei erneut geladen werden, damit alle "Zauber" passieren können. Es ist nicht genug mit der Einstellung filetype. Do :au BufRead und Sie sehen alle Autokommandos, die beim Starten der Syntax hinzugefügt wurden. Aber die Datei muss dann geladen werden, um alle Einstellungen zu erhalten.
sehen:>syntax-loading

Wenn Sie die Datei nicht neu geladen werden soll, versuchen syntax enable, denke ich, dass zu syntax on unterscheidet.
Oder versuchen auch :doautocmd filetypedetect BufRead % tun, siehe>autocmd-execute

Ich weiß nicht, was das Problem verursacht, kann es Ihnen sein? Wenn Sie einige Autokommandos hinzugefügt haben oder eigene Farben/Syntax haben?
Andernfalls, bis Sie eine Lösung erhalten, können Sie vielleicht versuchen, autocmd BufWritePost * <with the commands above that works> am Ende Ihrer .vimrc hinzufügen, verwenden Sie in diesem Fall augroup. Hier

ein Beispiel:

augroup myResetSyntax 
    au! 
    autocmd BufWritePost * syntax enable | doautocmd filetypedetect BufRead "%" 
augroup END 
1

nun nach einer Weile merke ich die screwy Hervorhebung durch Falten verursacht wird, anstatt als alle geheimnisvollen Kräfte im Zusammenhang mit Dateispeicherung, so eine einfache Lösung * wäre das setzen folgende in meinem vimrc

noremap <F9> <Esc>:syntax sync fromstart<CR> 
inoremap <F9> <C-o>:syntax sync fromstart<CR> 

und drücken Sie F9 immer wenn etwas schief geschieht.

  • Lösung von here entdeckt
2

Sie können auch die Syntax wiederherstellen, indem Sie den Puffer einfach Nachladen von:

:e