【问题标题】:Vim Pathogen won't load - E117: Unknown function: pathogen#infectVim 病原体不会加载 - E117:未知功能:病原体#infect
【发布时间】:2012-10-26 03:53:16
【问题描述】:

这应该是一个非常简单的问题。我有一个简单的.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/ 目录?这可能是把事情搞砸了。

标签: vim pathogen


【解决方案1】:

由于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。然后尝试使用链接文件夹。如果可行,则添加病原体并查看它是否加载。

【讨论】:

  • 你是对的。我的主目录中有一个~/.vim/ 符号链接到~/.dotfiles/.vim 而不是~/.dotfiles/vim。我应该更仔细地考虑这个问题,因为我还注意到vividchalk 无法加载,因此它不是特定于病原体的东西。不过,感谢您为我考虑。
【解决方案2】:

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

~/.vim

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

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

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

【讨论】:

    【解决方案3】:

    我也遇到了同样的问题,经过大量的谷歌和调整 vimrc 文件后,终于找到了解决方案。希望下面的代码 sn-p 能解决这个问题。

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

    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()

    【讨论】:

      猜你喜欢
      • 2012-02-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-03-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多