VIM:单击另一个文件后语法高亮显示消失

VIM:单击另一个文件后语法高亮显示消失,vim,Vim,我对gvim中的语法突出显示有问题。 我的vimrc文件中有以下命令: autocmd BufNewFile,BufRead *.v,*.vs,*.va set syntax=verilog 但是,如果我在gvim中读取一个文件-“a.txt”,并且在split时打开了“b.txt”,当我单击b然后返回到a时,语法高亮显示在单击后消失。 有人试图向我解释说autocmd并不总是运行。 任何想法该选项仅在将文件读入新缓冲区时适用,因此简单地在拆分之间切换不会触发auto命令是有意义的。文件已被读

我对gvim中的语法突出显示有问题。 我的vimrc文件中有以下命令:

autocmd BufNewFile,BufRead *.v,*.vs,*.va set syntax=verilog
但是,如果我在gvim中读取一个文件-“a.txt”,并且在split时打开了“b.txt”,当我单击b然后返回到a时,语法高亮显示在单击后消失。 有人试图向我解释说autocmd并不总是运行。 任何想法

该选项仅在将文件读入新缓冲区时适用,因此简单地在拆分之间切换不会触发auto命令是有意义的。文件已被读入缓冲区;除非您关闭并重新打开它,否则不会再次读取它

您需要该选项,因为它会在输入缓冲区时触发。您的新命令应该如下所示:

autocmd BufNewFile,BufRead,BufEnter *.v,*.vs,*.va set syntax=verilog
作为旁注,最好使用
filetype
而不是
syntax
,因为
syntax
不会影响缩进规则(如果有)。或者更好的方法是,使用插件自动设置所有内容,而无需在
.vimrc
中使用明确的自动命令。只需快速浏览一下谷歌,就会弹出一堆