Vim Pathogen无法加载 - E117:未知函数:pathogen#infect

9
这应该是一个非常简单的问题。我有一个简单的 .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/的符号链接。 我正在尝试加载三个插件:command-t、commentary和fugitive。 这些插件都是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

为什么要使用 ~/.dotfiles/ 目录?这可能会搞乱一些东西。 - romainl
3个回答

8

既然Vividchalk也不能加载,我猜测Vim无法访问您的.vim文件夹。

您使用的是Mac 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文件。然后尝试使用链接文件夹。如果可以工作,则添加pathogen并查看是否加载。

1
你说得对。我在我的主目录中使用了一个 ~/.vim/ 的符号链接,指向 ~/.dotfiles/.vim 而不是 ~/.dotfiles/vim。如果我仔细思考这个问题,就会发现 vividchalk 也不能加载,所以这不是 pathogen 特有的问题。不过,还是谢谢你帮我想了想。 - tadasajon

3
最显而易见的解决方法是将您的~/.dotfiles/vim文件夹移到正常的位置并命名为:

~/.vim

你可以像pydave的回答那样使用符号链接。
另一个解决方案是将以下行添加到你的~/.vimrc文件中:
set runtimepath+=~/.dotfiles/vim/autoload (and all the other subdirs)

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 "我的pathogen.vim位置 call pathogen#infect() call pathogen#helptags()


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接