0

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

由于我在多台机器上共享我的配置,我通常~/.vim/使用 git repo 管理我的路径。为了避免大的 .vimrc,我将自己的配置放在 .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版

4

2 回答 2

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/**/*.vimpluginmanager.vim文件末尾。

也可以看看::help init

于 2015-03-17T21:58:38.560 回答
1

问题出在启动顺序上。在你~/.vimrc被执行之后(作为启动期间的第一件事),Vim 会执行类似:runtime! plugin/*.vim加载插件的操作。由于您的插件管理器才被调用,因此更改'runtimepath'不再到达该触发:runtime命令,并且插件无法加载。

有很多解决方法:

  • 将您的脚本移动到~/.vim/pluginmanager.vim:runtime pluginmanager.vim~/.vimrc.
  • 通过 重新触发:runtime! plugin/*.vim

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

于 2015-03-18T13:32:29.323 回答