关于Vim病原菌无法加载:Vim病原菌无法加载-E117:未知功能:病原体#infect

Vim Pathogen won't load - E117: Unknown function: pathogen#infect

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
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时,出现以下错误消息:

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

我已经花了相当长的时间解决这个问题,包括查看以下内容:Vim:病原体未加载,此处:病原体未加载插件,以及此处:https://github.com/tpope/vim-pathogen/issues/50

我将所有与vim相关的文件存储在~/.dotfiles/vim/目录中,并从我的主目录符号链接了.vimrc.gvimrc.vim/。 我有三个要加载的插件:command-t,commentary和fagitive。 这些插件都是git子模块。 目录结构如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
.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


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

您在OS X上吗?您正在使用MacVim吗?

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

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

您可以尝试以下方法:

1
2
3
4
5
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。然后尝试使用链接的文件夹。如果可行,则添加病原体并查看是否已加载。


最明显的解决方案是将~/.dotfiles/vim文件夹从该~/.dotfiles目录移至其正常位置和名称:

1
~/.vim

您可以在pydave的答案中使用符号链接。

另一个解决方案是将以下行添加到您的~/.vimrc中:

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

我面临着同样的问题,经过大量的google和调整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()