当一个缓冲区退出时,vim语法关闭?

时间:2012-04-27 01:35:04

标签: vim

我的vim会话中有两个缓冲区,我在vimrc中设置了语法,我使用minibufexpl来管理bufs。

我使用:q 退出当前的buf,但是另一个buf会自动设置语法,我必须使用:set syntax = on来手动打开语法高亮显示。有人可以给我一个解决方案,一个buf退出后不自动设置语法吗?谢谢!! (我尝试:bd 退出buf而不是:q ,有时它保持语法,但有时没有。)

5 个答案:

答案 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

如果所有其他方法都失败了,请尝试逐个禁用插件(或删除所有插件,然后逐个启用)来消除错误来源。在某些时候,问题会出现/消失,你找到了有罪的一方。