2013-02-08 18 views
7

我使用vim编辑一些python文件,最近偶尔出现语法突出显示在vim中保存缓冲后消失。我试图重置syntax onset filetype=python,但无济于事。我根本不知道是什么原因导致这个问题,所以现在我只有最少的诊断信息。但是之前有没有人遇到过这种情况,或者哪里可能发生故障?语法高亮显示在文件保存过程中随机消失

+0

你可以发布你的vimrc? – mindvirus 2013-02-08 18:48:06

+0

和什么插件? – Kevin 2013-02-08 18:50:49

+0

@mdkess它相当长,我只是上传到pastebin http://pastebin.com/dggSfKkX – nye17 2013-02-08 18:51:31

回答

5

这不是一个解决方案,但很难在评论中写入/阅读。

我的意思是说,当我开始修理我自己的.vimrc时,我正忙于语法/突出显示,这就是为什么我注意到它。
syntax on/syntax enable只是准备文件加载的东西(增加了很多auBufNewFile/BufRead)。因此,如果某个插件在写入文件时混淆了语法/高亮设置,则必须重新加载该文件才能发生所有“魔术”,但设置filetype还不够。执行:au BufRead,您将看到在启动语法时添加的所有自动命令。但是必须加载文件才能获得所有settigs。
看到这个:>syntax-loading

如果你不想重新加载该文件,尝试syntax enable,我认为这是syntax on不同。
或试试:doautocmd filetypedetect BufRead %,参见>autocmd-execute

我不知道是什么原因造成的问题,难道是你?如果你添加了一些自动命令,或者做了自己的颜色/语法?
否则,直到您找到解决方案,您可以尝试在.vimrc的末尾添加autocmd BufWritePost * <with the commands above that works>,在这种情况下使用augroup

下面是一个例子:

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

现在过了一段时间,我才发现扭曲突出显示,通过折叠,而不是不是与文件保存有关的任何神秘力量造成的,所以一个简单的修复*将放以下在我的vimrc

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

并按F9,只要发生了一些棘手的事情。

  • 解决方案从here
2

发现你也可以通过简单地重新加载缓存恢复语法:

:e