如何在启动VIM之后重新加载VIM插件?

4
我正在修改一个已安装的VIM插件,然后在另一个终端标签中测试结果。每次想要测试更改时,我都必须重新启动VIM。有没有更快的方法来完成这个过程?如何在启动VIM后重新加载VIM插件?该插件是通过Vundle安装的。我尝试运行:so %,它应该重新加载.vimrc文件,但我仍然看不到我的更改。
1个回答

6
如果没有“包含保护”(if ! exists('g:loaded_pluginname') ...),你可以简单地运行 :runtime! plugin/pluginname.vim(或者如果它当前已经打开,运行:source %),所有插件定义都将被重新读取。
但是,由于大多数插件(正确地)使用这样的保护,所以你需要首先运行:unlet删除该变量:
:unlet g:loaded_pluginname | runtime! plugin/pluginname.vim

如果守卫名称符合规范命名,我的ReloadScript插件只需一个命令即可完成此操作,而scriptease插件也有这样一个命令。

编辑:一些插件使用不同命名的守卫变量或其他方式来防止重新加载。mattn的插件(例如emmet.vim)非常复杂;也许有一些特殊机制;我不使用该插件。您可以询问作者寻求建议。


插件名称是什么,它使用哪个保护变量? - Ingo Karkat
这是我第一次编辑VIM插件。它的名字叫做emmet-vim - Ionică Bizău
啊,它的卫兵名称非标准;你需要显式地 :unlet g:loaded_emmet_vim - Ingo Karkat
你能解释一下当你说“你需要显式地:unlet g:loaded_emmet_vim”时是什么意思吗? - Ionică Bizău
我的 ReloadScript 插件需要一个 g:loaded_emmet 名称,因此它无法自动重新加载插件(正如您所注意到的那样)。这就是为什么需要使用 :unlet 的原因。 - Ingo Karkat
让我们继续在聊天室中讨论:http://chat.stackoverflow.com/rooms/46372/discussion-between-ionic-bizu-and-ingo-karkat - Ionică Bizău

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