8

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

4

4 回答 4

5

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

我的意思是当我开始修复自己的语法/突出显示时,我正在搞乱.vimrc,这就是我注意到它的原因。
syntax on/syntax enable只是为文件加载做准备(添加很多auBufNewFile / BufRead)。因此,如果某些插件在编写文件时弄乱了语法/突出显示设置,则必须再次加载文件以使所有“魔术”发生,仅设置filetype. 执行:au BufRead此操作,您将看到启动语法时添加的所有自动命令。但是必须加载该文件才能获取所有设置。
看到这个:>syntax-loading

如果您不想重新加载文件,请尝试syntax enable,我认为这与syntax on.
或尝试也这样做:doautocmd filetypedetect BufRead %,请参阅>autocmd-execute

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

这是一个例子:

augroup myResetSyntax
  au!
  autocmd BufWritePost * syntax enable | doautocmd filetypedetect BufRead "%"
augroup END
于 2013-02-09T07:39:16.347 回答
2

现在过了一会儿,我意识到扭曲的突出显示是由折叠引起的,而不是与文件保存相关的任何神秘力量,所以一个简单的修复*是将以下内容放入我的 vimrc

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

并在发生奇怪的事情时按 F9。

于 2013-03-01T18:13:35.213 回答
2

您还可以通过简单地通过以下方式重新加载缓冲区来恢复语法:

:e
于 2015-09-02T05:30:24.370 回答
0

您可以先保存文件

:w

然后刷新缓冲区

:e
于 2020-11-25T08:22:58.037 回答