Vim 在文件保存过程中,语法高亮显示会随机消失
我正在使用vim编辑一些python文件,最近,在我将缓冲区保存到vim中后,语法高亮显示偶尔消失。我试图在和上重置Vim 在文件保存过程中,语法高亮显示会随机消失,vim,syntax-highlighting,vi,vim-syntax-highlighting,Vim,Syntax Highlighting,Vi,Vim Syntax Highlighting,我正在使用vim编辑一些python文件,最近,在我将缓冲区保存到vim中后,语法高亮显示偶尔消失。我试图在和上重置语法,但没有成功。我根本不知道是什么导致了这个问题,所以现在我只有很少的诊断信息。但是以前有没有人遇到过这种情况,或者什么地方会出现故障?这不是一个解决方案,但很难在评论中写/读 我的意思是,当我开始修复自己的.vimrc时,我正在混乱语法/突出显示,这就是我注意到它的原因。 syntax on/syntax enable只是为文件加载做准备(在BufNewFile/BufRead
语法,但没有成功。我根本不知道是什么导致了这个问题,所以现在我只有很少的诊断信息。但是以前有没有人遇到过这种情况,或者什么地方会出现故障?这不是一个解决方案,但很难在评论中写/读
我的意思是,当我开始修复自己的.vimrc
时,我正在混乱语法/突出显示,这就是我注意到它的原因。
syntax on
/syntax enable
只是为文件加载做准备(在BufNewFile/BufRead
中添加了大量的au
)。因此,如果某个插件在编写文件时弄乱了语法/突出显示设置,则必须再次加载该文件才能实现所有“神奇”效果,仅设置文件类型是不够的。执行:au BufRead
,您将看到在启动语法时添加的所有自动命令。但必须加载该文件才能获得所有设置。
见此:>
如果不想重新加载文件,请尝试启用语法
,我认为这与
上的语法不同
或者尝试执行:doautocmd filetypedetect BufRead%
,请参阅>
我不知道是什么导致了这个问题,是你吗?如果您添加了一些自动命令,或者使用自己的颜色/语法?
否则,在得到解决方案之前,您可以尝试在的末尾添加autocmd BufWritePost*
。在这种情况下,请使用augroup
以下是一个例子:
augroup myResetSyntax
au!
autocmd BufWritePost * syntax enable | doautocmd filetypedetect BufRead "%"
augroup END
现在过了一会儿,我意识到扭曲的突出显示是由折叠引起的,而不是与文件保存相关的任何神秘力量,因此一个简单的修复*将是在我的vimrc中添加以下内容
noremap <F9> <Esc>:syntax sync fromstart<CR>
inoremap <F9> <C-o>:syntax sync fromstart<CR>
noremap:syntax-sync fromstart
inoremap:syntax-sync fromstart
每当有不正常的事情发生时,按F9
- 从中发现的解决方案
您也可以通过以下方式重新加载缓冲区来恢复语法:
:e
您可以先用
:w
然后用
:e
你能发布你的vimrc吗?@mdkes它相当长,我刚刚上传到pastebin@Kevin插件是ack.vim,LaTeX Box,vim align,vimroom,LaTeX文本格式化程序,vim颜色日光化,vim环绕,ctrlp.vim,nerdtree,vim索引搜索,gundo.vim,tComment,vim markdown,jpythonfold.vim,toggle_words.vim,vim powerline,它是否有助于执行:e
?我曾经遇到过一些语法混乱的问题,设置filetype
是不够的。我也遇到了同样的问题,特别是在我使用Tab for completion(llvm)时。被接受的答案修正了它。感谢提问者和回答者。我在strace-f vim test-file.type 2>/tmp/vim strace.out
期间注意到的一件事是,跟踪文件显示了source$MYVIMRC
期间丢失的3个vim文件。初始Vim会话期间文件处理的顺序是:/usr/share/Vim/vim81/syntax,/usr/share/Vim/vim81/ftplugin.Vim,$HOME/.Vim/ftplugin,Argh!!!无法格式化注释中的行。简而言之,初始启动期间:scriptnames
的加载顺序与:scriptnames
期间:source$MYVIMRC
的加载顺序不同。