Search code examples
vimsyntax-highlightingvivim-syntax-highlighting

Syntax highlighting randomly disappears during file saving


I'm using vim to edit some python files and recently it occurs sporadically that the syntax highlighting disappears after I save the buffer inside vim. I tried to reset syntax on and set filetype=python but to no avail. I have no clue of what causes this problem at all, so right now I have minimal diagnostic info. But has anyone encountered this before, or where could things break down?


Solution

  • This is not a solution, but it's hard to write/read in the comments.

    I meant that I was messing around with syntax/highlighting when I start to fix my own .vimrc, thats why I noticed it.
    syntax on / syntax enable is only preparing for file load stuff (adding a lot of au to BufNewFile / BufRead). So if some plugin is messing with syntax/highlight settings when writing the file, the file must be loaded again for all "magic" to happen, it's not enough with setting filetype. Do :au BufRead and you will see all autocommands added when starting syntax. But the file must be loaded then to get all settigs.
    See this:> syntax-loading

    If you don't want to reload the file, try syntax enable, I think that is different to syntax on.
    Or try also doing :doautocmd filetypedetect BufRead %, see > autocmd-execute

    I don't know what is causing the problem, can it be you? If you added some autocommands, or doing own colors/syntax?
    Otherwise, until you get a solution, you can perhaps try to add autocmd BufWritePost * <with the commands above that works> at the end of your .vimrc, use augroup in that case.

    Here is an example:

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