Vim病原体不会加载 - E117:未知功能:病原体#infect

时间:2012-10-26 03:53:16

标签: vim pathogen

这应该是一个非常简单的问题。我有一个简单的.vimrc文件。整整15行:

filetype off
set nocompatible
call pathogen#infect()
syntax on
filetype plugin indent on

set hlsearch
set colorcolumn=79
set number
set list
set expandtab
set tabstop=4
set softtabstop=4

colorscheme vividchalk

但是当我尝试启动vim时,我收到以下错误消息:

Error detected while processing /Users/Jon/.vimrc:
line    3:
E117: Unknown function: pathogen#infect
line   15:
E185: Cannot find color scheme 'vividchalk'

我已经花了很长时间来解决这个问题,包括查看此处:Vim: Pathogen not loading和此处:Pathogen does not load plugins以及此处:https://github.com/tpope/vim-pathogen/issues/50

我将所有与vim相关的文件存储在~/.dotfiles/vim/目录中,并且已从我的主目录中添加符号链接.vimrc.gvimrc以及.vim/。我有三个插件我试图加载:命令-t,评论和逃犯。这些插件都是git子模块。目录结构如下:

.dotfiles/
 ├──vim/
    ├── autoload/
    │   └── pathogen.vim
    ├── bundle/
    │   ├── command-t/
    │   ├── commentary/
    │   └── fugitive/
    ├── colors/
    │   ├── distinguished.vim
    │   └── vividchalk.vim
    ├── ftdetect/
    │   ├── markdown.vim
    │   └── vim.vim
    ├── gvimrc
    ├── snippets/
    │   └── markdown.snippets
    ├── syntax/
    │   ├── markdown.vim
    │   └── python.vim
    ├── test.txt
    └── vimrc

3 个答案:

答案 0 :(得分:8)

由于vividchalk也无法加载,我猜vim无法访问你的.vim。

你是OS X吗?您使用的是MacVim吗?

您可能错误地创建了〜/ .vim。我会这样做(用绝对路径):

ln -s ~/.dotfiles/vim ~/.vim

你可以试试这个:

mkdir ~/vim_archive
mv ~/.*vim* ~/vim_archive/.
mkdir -p ~/.vim/colors
cp ~/vim_archive/.vim/colors/vividchalk.vim ~/.vim/colors/.
echo colorscheme vividchalk > ~/.vimrc

如果成功加载,则vim正在正确读取你的vimrc和.vim。然后使用链接文件夹尝试它。如果可行,则添加病原体,看它是否加载。

答案 1 :(得分:3)

最明显的解决方案是将~/.dotfiles/vim文件夹移出该~/.dotfiles目录到其正常位置并命名:

~/.vim

您可以像在pydave的回答中一样使用符号链接。

另一种解决方案是将以下行添加到~/.vimrc

set runtimepath+=~/.dotfiles/vim/autoload (and all the other subdirs)

答案 2 :(得分:0)

我遇到了同样的问题,最后经过很多谷歌和调整vimrc文件,找到了解决方案。希望以下代码段能解决问题。

在我的主目录中,所有文件都链接到它们的相关位置,如下所示

ln -s ~/dotfiles/vim ~/.vim ln -s ~/dotfiles/vim/vimrc ~/.vimrc ln -s ~/dotfiles/bash/bashrc ~/.bashrc ln -s ~/dotfiles/bash/aliases ~/.bash_aliases

将以下行添加到vimrc文件中。

set nocp source /home/ameet/.vim/autoload/pathogen.vim "location of my pathogen.vim call pathogen#infect() call pathogen#helptags()