Vim Pathogen не загружается — E117: Неизвестная функция: pathogen#infect

Это должно быть очень простой проблемой. У меня есть простой файл .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 не загружается и здесь: Pathogen не загружает плагины и здесь: 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

person jononomo    schedule 26.10.2012    source источник
comment
Почему каталог ~/.dotfiles/? Это, наверное, то, что портит вещи.   -  person romainl    schedule 26.10.2012


Ответы (3)


Поскольку 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. Затем попробуйте это со связанной папкой. Если это сработает, добавьте патоген и посмотрите, загрузится ли он.

person idbrii    schedule 26.10.2012
comment
Ты прав. У меня была символическая ссылка ~/.vim/ в моем домашнем каталоге на ~/.dotfiles/.vim вместо ~/.dotfiles/vim. Я должен был просто более тщательно обдумать эту проблему, поскольку я также заметил, что вискхелк не может загружаться, и поэтому это не связано с конкретным патогеном. Но спасибо, что подумал за меня. - person jononomo; 26.10.2012

Наиболее очевидное решение — переместить папку ~/.dotfiles/vim из этого каталога ~/.dotfiles в ее обычное местоположение и имя:

~/.vim

Вы можете использовать символическую ссылку, как в ответе pydave.

Другим решением было бы добавить следующую строку в ваш ~/.vimrc:

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

Я столкнулся с той же проблемой, наконец, после большого количества 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()

person Ameet    schedule 13.05.2014