gvim中的语法高亮显示有问题。我的vimrc文件中有以下命令:
autocmd BufNewFile,BufRead *.v,*.vs,*.va set syntax=verilog
然而,如果我在gvim中读取一个文件-"a.txt",并且在拆分时也打开了"b.txt",当我单击b然后返回a时,语法高亮显示在单击后消失。有人试图向我解释,autocmd并不总是在运行。有什么想法吗
BufRead
选项仅适用于将文件读取到新缓冲区时,因此简单地在拆分之间切换不会触发自动命令是有道理的。文件已被读取到缓冲区中;除非您关闭并重新打开它,否则不会再次读取。
您需要选项BufEnter
,因为它在输入缓冲区时触发。你的新命令应该看起来像:
autocmd BufNewFile,BufRead,BufEnter *.v,*.vs,*.va set syntax=verilog
附带说明一下,最好使用filetype
而不是syntax
,因为syntax
不会影响缩进规则(如果有的话(。或者更好的是,使用一个插件自动设置所有内容,而不需要在.vimrc
中显式的自动命令。只是从一个快速的谷歌,这个插件弹出了一堆。