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



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中显式的自动命令。只是从一个快速的谷歌,这个插件弹出了一堆。

最新更新