如何在没有 ~/.vimrc 的情况下启用插件管理器
How to enable a plugin manager without ~/.vimrc
在使用 vim 一段时间后,我的 ~/.vim/
从我第一次使用 vim 开始的实验随着时间的推移变得非常混乱。所以我想,是时候整理并开始使用具有干净配置的插件管理器了。
由于我在多台机器上共享我的配置,我通常使用 git 存储库管理我的 ~/.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
我建议使用 ~/.vimrc
文件进行一般配置,并使用另一个文件,例如 ~/.vimrc.local
与您的机器特定配置。您可以通过将以下内容添加到 ~/.vimrc
.
来获取 ~/.vimrc.local
if filereadable(glob("~/.vimrc.local"))
source ~/.vimrc.local
endif
来源:http://blog.sanctum.geek.nz/local-vimrc-files/
要解决您的问题,请尝试将 runtime! bundle/**/*.vim
添加到 pluginmanager.vim
文件的末尾。
另请参阅::help init
问题出在启动顺序上。在你的 ~/.vimrc
被执行后(作为启动期间的第一件事),Vim 执行类似 :runtime! plugin/*.vim
的东西来加载插件。由于您的插件管理器随后才被调用,'runtimepath'
中的更改不会再到达触发 :runtime
命令的地方,并且插件无法加载。
有很多解决方法:
- 将您的脚本移动到
~/.vim/pluginmanager.vim
并明确地 :runtime pluginmanager.vim
它来自您的 ~/.vimrc
.~/.vimrc
. 的(每个副本)
- 通过
:runtime! plugin/*.vim
重新触发。
但我同意@brettanomyces 的观点,即最好的解决方案是按预期使用 ~/.vimrc
,并将系统特定的配置放入不同的脚本中。
在使用 vim 一段时间后,我的 ~/.vim/
从我第一次使用 vim 开始的实验随着时间的推移变得非常混乱。所以我想,是时候整理并开始使用具有干净配置的插件管理器了。
由于我在多台机器上共享我的配置,我通常使用 git 存储库管理我的 ~/.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
我建议使用 ~/.vimrc
文件进行一般配置,并使用另一个文件,例如 ~/.vimrc.local
与您的机器特定配置。您可以通过将以下内容添加到 ~/.vimrc
.
~/.vimrc.local
if filereadable(glob("~/.vimrc.local"))
source ~/.vimrc.local
endif
来源:http://blog.sanctum.geek.nz/local-vimrc-files/
要解决您的问题,请尝试将 runtime! bundle/**/*.vim
添加到 pluginmanager.vim
文件的末尾。
另请参阅::help init
问题出在启动顺序上。在你的 ~/.vimrc
被执行后(作为启动期间的第一件事),Vim 执行类似 :runtime! plugin/*.vim
的东西来加载插件。由于您的插件管理器随后才被调用,'runtimepath'
中的更改不会再到达触发 :runtime
命令的地方,并且插件无法加载。
有很多解决方法:
- 将您的脚本移动到
~/.vim/pluginmanager.vim
并明确地:runtime pluginmanager.vim
它来自您的~/.vimrc
.~/.vimrc
. 的(每个副本)
- 通过
:runtime! plugin/*.vim
重新触发。
但我同意@brettanomyces 的观点,即最好的解决方案是按预期使用 ~/.vimrc
,并将系统特定的配置放入不同的脚本中。