5

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

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

4

5 回答 5

3

如果您使用 minibufexpl.vim,请将以下内容添加到您的 .vimrc 中:

let g:miniBufExplForceSyntaxEnable = 1

它似乎是由 vim 中的错误引起的。有关详细信息,请参阅minibufexpl 版本 6.3.1 的发行说明

请注意,这适用于:bd但不适用于:q

于 2013-04-15T16:21:00.520 回答
2

这可能为时已晚,但我遇到了完全相同的问题,发现添加行

set hidden

我的 .vimrc 解决了这个问题。这使得 vim 隐藏缓冲区而不是在您输入 ":q" 时关闭它们。当我使用 minibufexplorer 导航时,它似乎也使我的文件之间的语法突出显示保持启用状态。

希望这可以帮助。

于 2013-03-25T03:15:29.620 回答
1

可能您应该将此行添加到gvimrc

autocmd BufDelete * syntax on
于 2015-03-03T07:40:17.750 回答
1

你可以在你的 vimrc 中使用 syntax enable 或 syntax on。有关更多信息,请使用 :h 语法。

好的,然后检查您的语法文件是否正确,它应该看起来像这样

au BufNewFile,BufRead *.cpp set syntax=cpp11 <--这是我为 cpp 文件设置的行。

希望这有帮助。

于 2012-04-27T02:00:54.477 回答
0

插件行为不端。

关闭缓冲区(并丢失语法突出显示)后,进行调查,例如

:verbose set syntax?

这将显示类似

 syntax=cpp
  Last set from C:\Program Files\Vim\vim73\syntax\syntax.vim

你也许也能看到我做错了什么

:debug quit

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

于 2012-04-27T08:33:14.263 回答