现在使用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
答案 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
,并将系统特定的配置放入不同的脚本中。