如何在没有〜/ .vimrc的情况下启用插件管理器

时间:2015-03-17 21:35:02

标签: vim vim-plugin vundle

现在使用vim已经有一段时间了,我的第一次vim实验开始的~/.vim/随着时间的推移变得非常混乱。所以我想,是时候整理并开始使用干净配置的插件管理器了。

由于我在多台计算机上共享配置,因此我通常使用git repo管理~/.vim/路径。为了避免使用大的.vimrc,我将自己的配置放在~/.vim/plugin/下。这使我能够将所有共享配置保留在此文件夹中,并仅将~/.vimrc用于与机器相关的配置。

从NeoBundle上的VAM开始,现在Vundle我总是遇到同样的问题。如果我在~/.vim/plugin/pluginmanager.vim而不是~/.vimrc下添加所需的配置,则安装的插件不会加载或仅部分加载。命令:echo &rtp列出了正确的捆绑包,但:scriptnames不包含已安装的插件。如果我执行mv ~/.vim/plugin/pluginmanager.vim ~/.vimrc,则每件事都按预期工作。

任何人都可以解释这种行为并提供解决方案吗?

我的pluginmanager.vim看起来像这样:

set nocompatible              " be iMproved, required
filetype off                  " required

" set the runtime path to include Vundle and initialize
set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()

" let Vundle manage Vundle, required
Plugin 'gmarik/Vundle.vim'
Plugin 'bling/vim-airline'
Plugin 'MarcWeber/vim-addon-mw-utils'
Plugin 'tomtom/tlib_vim'
Plugin 'garbas/vim-snipmate'
Plugin 'honza/vim-snippets'

" All of your Plugins must be added before the following line
call vundle#end()            " required
filetype plugin indent on    " required

我的vim安装版本为7.4.52

2 个答案:

答案 0 :(得分:1)

我建议使用~/.vimrc文件进行常规配置,并使用机器特定配置使用~/.vimrc.local等其他文件。您可以通过将以下内容添加到~/.vimrc.local来获取~/.vimrc

if filereadable(glob("~/.vimrc.local")) 
    source ~/.vimrc.local
endif

信用:http://blog.sanctum.geek.nz/local-vimrc-files/


要解决您的问题,请尝试将runtime! bundle/**/*.vim添加到pluginmanager.vim文件的末尾。

另请参阅::help init

答案 1 :(得分:1)

问题在于启动顺序。执行~/.vimrc后(作为启动过程中的第一件事),Vim执行:runtime! plugin/*.vim之类的操作来加载插件。由于仅在调用插件管理器时,'runtimepath'中的更改不再触发该:runtime命令,插件无法加载。

有许多解决方法:

  • 将您的脚本移至~/.vim/pluginmanager.vim并明确:runtime pluginmanager.vim来自~/.vimrc的每个副本。
  • 通过:runtime! plugin/*.vim重新触发。

但我同意@brettanomyces认为最好的解决方案是按预期使用~/.vimrc,并将系统特定的配置放入不同的脚本中。