Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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

Tags:

vim

pathogen

This should be a very straightforward problem. I have a simple .vimrc file. It is 15 lines in its entirety:

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

When I try to start vim, though, I get the following error message:

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

I have worked quite a while at solving this, including looking here: Vim: Pathogen not loading and here: Pathogen does not load plugins and here: https://github.com/tpope/vim-pathogen/issues/50

I am storing all my vim-related files in a ~/.dotfiles/vim/ directory and have symlinked .vimrc and .gvimrc and .vim/from my home directory. I have three plugins I am trying to load: command-t, commentary, and fugitive. These plugins are all git submodules. The directory structure is as follows:

.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
like image 433
tadasajon Avatar asked Oct 26 '12 03:10

tadasajon


2 Answers

Since vividchalk can't load either, I'd guess vim can't access your .vim.

Are you on OS X? Are you using MacVim?

You may have incorrectly created your ~/.vim. I would do this (with absolute paths):

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

You could try this:

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

If that successfully loads, then vim is correctly reading your vimrc and .vim. Then try it with a linked folder. If that works, then add pathogen and see if it loads.

like image 87
idbrii Avatar answered Apr 27 '23 11:04

idbrii


The most obvious solution is to move your ~/.dotfiles/vim folder out of that ~/.dotfiles directory to its normal location and name:

~/.vim

You can use a symlink like in pydave's answer.

Another solution would be to add the following line to your ~/.vimrc:

set runtimepath+=~/.dotfiles/vim/autoload (and all the other subdirs)
like image 24
romainl Avatar answered Apr 27 '23 10:04

romainl