如何在Vim中禁用特定插件?

28

我已经设置了Vim并使用了出色的NERDTree插件。但是,在某些情况下,我不希望加载该插件。

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

请问有人能演示如何在Vim中禁用特定插件的加载吗?

2个回答

27

大多数插件都有一个(重新)包含保护。

打开插件,查看是否有保护的名称(如果没有,则自己添加,并联系作者修复插件),最后在你的 .vimrc 中将其值设置为 1。 就是这样。

我无法更具体地说明“打开并查找保护”,因为并非所有插件都使用相同的保护命名策略。 通常是 g:loaded_pluginname

关于 ftplugin,情况会更棘手。 保护变量是缓冲区局部的。 因此,它不能在 .vimrc 中指定(因为它仅适用于您打开的第一个缓冲区)。 最简单的方法是将您的 ftplugin 从 .vim/ftplugin 移动到 .vim/after/ftplugin,并在您的非-after层次结构中的 ftplugin 中将相关的反重复包含保护设置为 1。 只要 ftplugin 不希望被放置在 after/ 中(或者相反,应该可以正常工作)。 注意:大多数 ftplugin 认为它们是独特的,并且错误地使用变量 b:did_ftplugin 作为重复包含保护。


1
我见过的大多数守卫都使用一个名为“loaded_<插件名称>”的变量。 - too much php
我需要禁用Eclim,它使用g:EclimDisabled来实现。 - Petr
2
如果您想在单个Vim会话中暂时禁用插件,请使用以下命令启动Vim:vim --cmd“let g:loaded_<pluginname>=1”... - Sameer

3

将以下这行代码添加到你的 .vimrc 文件中

let g:loaded_nerdtree_exec_menuitem = 1

谢谢这个提示。 - Mahendra Gunawardena

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接