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