【问题标题】:How to enable a plugin manager without ~/.vimrc如何在没有 ~/.vimrc 的情况下启用插件管理器
【发布时间】:2015-03-17 21:35:02
【问题描述】:

在使用 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版

【问题讨论】:

  • 你也不想用~/.vim/vimrc吗?
  • 谢谢,不知道~/.vim/vimrc。似乎是最好的解决方案。我想我必须更新我的问题标题。

标签: vim vim-plugin vundle


【解决方案1】:

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

有很多解决方法:

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

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

【讨论】:

  • 是的,这解释了这种行为。感谢您的洞察力。但作为解决方案,我将使用@FDinoff 在他的评论中建议的~/.vim/vimrc。这与版本控制系统方法兼容。
  • 是的,这是一个很好的解决方案,前提是您在所有系统上都有最新的 Vim 版本,因为这是一个相当新的功能。
  • 啊,好点子。我测试了版本。 :version 命令很有帮助,它列出了使用的 vimrc 文件。
【解决方案2】:

我建议使用~/.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。如果没有插件管理器,我没有错过它,并且我的不同配置在插件目录中组织得更好。但这可能是某种个人偏好。
  • @Trendfischer:只需将 ~/.vimrc 符号链接到您的 Git 存储库中的某些内容。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-01-18
  • 1970-01-01
  • 2018-12-16
  • 1970-01-01
  • 2014-10-09
  • 1970-01-01
相关资源
最近更新 更多