我的vim会话中有两个缓冲区,我在vimrc中设置了语法,我使用minibufexpl来管理bufs。
我使用:q 退出当前的buf,但是另一个buf会自动设置语法,我必须使用:set syntax = on来手动打开语法高亮显示。有人可以给我一个解决方案,一个buf退出后不自动设置语法吗?谢谢!! (我尝试:bd 退出buf而不是:q ,有时它保持语法,但有时没有。)
答案 0 :(得分:3)
如果您使用的是minibufexpl.vim,请将以下内容添加到.vimrc中:
let g:miniBufExplForceSyntaxEnable = 1
它似乎是由vim中的错误引起的。有关详细信息,请参阅release notes for minibufexpl version 6.3.1
请注意,这适用于:bd ,但不适用于:q
答案 1 :(得分:2)
这可能为时已晚,但我遇到了完全相同的问题并发现添加了这行
set hidden
到我的.vimrc解决了这个问题。当你输入“:q”时,这会使vim隐藏缓冲区而不是关闭它们当我使用minibufexplorer导航时,它似乎也会在文件之间保持语法高亮显示。
希望这有帮助。
答案 2 :(得分:1)
您可以在vimrc中使用语法启用或语法。有关更多信息,请使用:h语法。
好的,然后检查你的语法文件是否正确,它应该像这样讨论
au BufNewFile,BufRead * .cpp set syntax = cpp11< - 这是我对cpp文件的行。
希望得到这个帮助。
答案 3 :(得分:1)
您可以将此行添加到gvimrc
:
autocmd BufDelete * syntax on
答案 4 :(得分:0)
插件行为不端。
关闭缓冲区(并丢失语法高亮显示)后,通过例如
进行调查:verbose set syntax?
这将显示类似
的内容 syntax=cpp
Last set from C:\Program Files\Vim\vim73\syntax\syntax.vim
你也可以看到我做错了什么
:debug quit
如果所有其他方法都失败了,请尝试逐个禁用插件(或删除所有插件,然后逐个启用)来消除错误来源。在某些时候,问题会出现/消失,你找到了有罪的一方。