Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/vim/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vim 在文件保存过程中,语法高亮显示会随机消失_Vim_Syntax Highlighting_Vi_Vim Syntax Highlighting - Fatal编程技术网

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

我正在使用vim编辑一些python文件,最近,在我将缓冲区保存到vim中后,语法高亮显示偶尔消失。我试图在和上重置
语法,但没有成功。我根本不知道是什么导致了这个问题,所以现在我只有很少的诊断信息。但是以前有没有人遇到过这种情况,或者什么地方会出现故障?

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

我的意思是,当我开始修复自己的
.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
的加载顺序不同。