你如何禁用Vim中的特定插件?

Zxa*_*aos 26 vim

我让Vim设置为使用优秀的NERDTree插件.但是,在某些环境中我不希望加载此插件.

在我的.vimrc中,我有一个仅在特定环境变量为true时运行的部分.在其中一个部分中,我想禁用NERDTree的加载,但我遇到的所有信息都说明了如何禁用所有插件,而不仅仅是一个.

有人可以演示如何在Vim中禁用一个特定插件的加载吗?

Luc*_*tte 25

大多数插件都有(重新)包含防护.

打开插件,看看防护的名称,如果有的话(如果没有,自己添加一个,并联系作者让他修复他的插件),最后在.vimrc中将其值设置为1.就这样.

我不能更具体地说"打开,寻找警卫",因为并非所有插件都使用相同的防护命名策略.g:loaded_pluginname虽然经常这样.

关于ftplugins,它变得更加棘手.守卫是一个缓冲局部变量.因此,它无法指定到.vimrc中(因为它仅适用于您打开的第一个缓冲区).最简单的方法是将你的ftplugin移动.vim/ftplugin.vim/after/ftplugin,并在非后层次结构中的ftplugin中将相关的反重新保护设置为1.只要ftplugin不期望被放入after/(或相反,它应该没问题).注意:大多数ftplugins认为它们是独一无二的,并且(错误地)将变量b:did_ftplugin用作重新加入防护.

  • 如果你想在单个 Vim 会话中暂时禁用某个插件,请使用它来启动 Vim: `vim --cmd "let g:loaded_<pluginname>=1" ...` (2认同)