【问题标题】:Is BundleInstall (for Vundle) required every time Vim is started?每次启动 Vim 时都需要 BundleInstall(用于 Vundle)吗?
【发布时间】:2013-12-18 18:51:59
【问题描述】:

我在 Win7 上使用 Vim/Cream 和 Cream (v7.3.107) 提供的 Vim 二进制文件,并安装了 Vundle,并且在我运行 :BundleInstall 后插件工作正常。但是在退出并重新启动后,插件在我再次运行 BundleInstall 之前不起作用。这是正常的吗?我认为 BundleInstall 是一次性命令(用于更新时除外)。这是我在 vimrc 中的摘录(实际上是 cream-user.vim,这是 Cream 喜欢的):

set nocompatible
filetype off
set runtimepath+=$HOME/vimfiles/bundle/vundle/
call vundle#rc()

Bundle 'gmarik/vundle'

" Your bundles go here:
"
" ORIGINAL REPOS ON GITHUB
Bundle '907th/vim-auto-save'

.

但是,当我运行 :AutoSaveToggle(vim-auto-save 命令)时,我收到以下错误:

E492: Not an editor command: AutoSaveToggle

.

正在调用 cream-user.vim 文件(它在脚本名中列出):

83: C:\Users\<MyUserName>\.cream\cream-user.vim
[...]
85: C:\Users\<MyUserName>\.vim\bundle\vundle\autoload\vundle.vim
86: C:\Users\<MyUserName>\.vim\bundle\vundle\autoload\vundle\config.vim

.

...并且 Vundle 本身已安装,因为它的命令有效,特别是 :BundleList,它在已安装的包中列出了 vim-auto-save:

" My Bundles
Bundle 'gmarik/vundle'
Bundle '907th/vim-auto-save'

重新运行 BundleInstall 后,插件开始工作,我注意到 scriptnames 现在包含额外文件:

125: C:\Users\<MyUserName>\.vim\bundle\vundle\autoload\vundle\installer.vim
126: C:\Users\<MyUserName>\.vim\bundle\vundle\autoload\vundle\scripts.vim
127: C:\Users\<MyUserName>\.vim\bundle\vim-auto-save\plugin\AutoSave.vim

将 :BundleInstall 放在 .vimrc 中看起来也不正确,因为它会打开一个缓冲区(可以解决,但仍然......)。我是 Vim 的新手,所以我不确定出了什么问题,可能是我的一些简单的事情,比如我不清楚如何适当地调用 vundle。有关如何解决此问题的任何想法?

【问题讨论】:

  • 我在 Windows 上使用 gVim 7.4 时遇到了同样的问题。我安装了snipmate。它可以工作,但我每次都需要发出 BundleInstall。否则我会收到一条错误消息,告诉我 tlib 丢失。
  • 我在 Windows 上的 gVim 7.4.250 上遇到了同样的问题 - 我的 vim 是从源代码编译的。在我发出:PluginInstall 之前,一些插件不会加载。困惑!!如果我列出:scriptnames,则未列出缺少插件的脚本。在 :PluginInstall 之后,一切正常。我的 vim 配置在这里:github.com/raghur/vimfiles

标签: vim vim-plugin vundle


【解决方案1】:

首先:您是对的,:BundleInstall 不是在每次发布时都需要。我猜您看到的行为与 Cream 自定义有关;它可能会与 'runtimepath' 本身混淆,因此会干扰 Vundle。

如果您只是选择 Cream 来轻松安装 Vim(尽管您的 7.3.107 已经过时了),那么还有一个“仅 Vim”安装程序。此外,http://www.vim.org/download.php 提供了 Vim 7.4 安装程序。

如果您确实需要 Cream(不建议这样做;特别是如果您使用插件编程/自定义 Vim),我会打开 Vundle 项目的问题,寻求 Cream 的帮助/支持。

【讨论】:

  • 感谢您的回复;知道它不是我的电脑特有的会很有帮助。此外,我返回并在另一台具有类似设置的 PC 上复制了该问题。在我放弃 Cream 之前,我会通过 Cream 邮件列表运行它,看看是否有什么可以做的。
【解决方案2】:

MacVim 也有类似的问题。对我来说,问题是我没有足够严格地遵循说明。我只是假设我可以将 Vundle 行放在我的 .gvimrc 中。这是错误的!根据说明,解决方案是将这些行放在 .vimrc 文件中。操作顺序很重要,这可能对 Cream 很重要。

【讨论】:

    【解决方案3】:

    我在此错误报告中找到了解决此问题的方法:https://github.com/gmarik/Vundle.vim/issues/430

    在 cream-user.vim 文件的最后,添加:

    call vundle#config#require(g:bundles)
    

    这会导致插件在启动时加载而不显示 Vundle\Installer 缓冲区。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-21
      • 1970-01-01
      • 2021-07-19
      • 1970-01-01
      • 1970-01-01
      • 2021-02-24
      相关资源
      最近更新 更多