После долгого чтения я все еще не могу заставить Pathogen загрузить плагин под Windows.

Для gVim 7.3.46 в 64-разрядной версии Windows 7, полностью обновленной (я запускаю gVim 7.3.46, потому что он добавляет надежный экземпляр «Редактировать с помощью Vim» в контекстное меню Windows).

Несмотря на то, что я прочитал множество статей (многие из них повторяют другие), я не могу заставить Pathogen загрузить подключаемый модуль vim, который уже работает нормально, если я не использую Pathogen.

Проблема, по-видимому, заключается в расположении папки «bundle» Pathogen следующим образом:

· ЕСЛИ я помещаю подключаемый модуль mru.vim (самые недавно использованные файлы) в «D:\Program Files (x86)\Vim\vim73\plugin», ТО MRU работает нормально — ввод :MRU возвращает список недавно использованных файлов.

. ЕСЛИ я помещаю mru.vim в папку с именем «bundle», затем помещаю папку пакета в «D:\Program Files (x86)\Vim\vimfiles» или в другие места, перечисленные ниже, ввод MRU возвращает «E492: не редактор команда: МРУ"

МОЯ СРЕДА:

· В 64-разрядной версии Windows 7 Vim / gVim 7.3.46 устанавливается в «D:\Program Files (x86)\Vim\vim73\gvim.exe» (да, «D», а не «C»).

· В gVIM ввод :e $VIM возвращает следующие четыре строки:

../
vim73/
vimfiles/
_vimrc  

· В "D:\Program Files (x86)\Vim\vimfiles\autoload\" у меня есть pathogen.vim. В этом месте gVim запускается без ошибок, и ввод :pathogen#helptags() не возвращает ошибок (одна статья, которую я прочитал, указывала, что команда была одним из способов определить, правильно ли установлен Pathogen).

· Мой файл _vimrc включает строки:

syntax on
execute pathogen#infect()
filetype plugin indent on

МОЯ ПРОБЛЕМА:

Я попытался скопировать папку пакета, содержащую mru.vim, в:

· D:\Program Files (x86)\Vim\vimfiles (по общему мнению, "правильное" расположение для Windows)

· D:\Program Files (x86)\Vim

· D:\Program Files (x86)\Vim\vim73

В нескольких статьях первая запись в этом списке указана как правильное расположение папки комплекта в системе Windows. То есть, в Windows, в отличие от *ix, явно НЕ "зарывают" папку пакета где-то внизу в папке *ix .vim, или в папке Windows ..\users[userName], или тому подобное (?)

Все эти места для «пакета» дают одинаковый ответ на ввод: MRU — «E492: Не команда редактора: MRU».

Я в тупике. Любые идеи?

(Кстати, спасибо, но я НЕ хочу использовать Vundle / Github / Curl или любое другое решение, связанное с сетью. Я не использую столько плагинов gVim, а те, которые я использую, я хочу загрузить и скопировать в связывать папку самостоятельно, а не задействовать в этом нежелательный сетевой процесс.)

Ура и спасибо за вашу помощь, Райли SFO


person RBV    schedule 03.05.2013    source источник
comment
Правильное расположение для вашей конфигурации — $HOME\vimfiles и $HOME\_vimrc. В Vim выполните :echo $HOME, чтобы указать правильный каталог.   -  person romainl    schedule 04.05.2013


Ответы (1)


mru.vim должен быть помещен в папку пакета таким образом, чтобы путь

D:\Program Files (x86)\Vim\vimfiles\bundle\mru\plugin\mru.vim

Хотя на самом деле он должен быть помещен в vimfiles в вашем домашнем каталоге, а не в Program Files.

$HOME\vimfiles\bundle\mru\plugin\mru.vim

Pathogen делает так, что каждая папка в пакете является частью пути среды выполнения vim. Это позволяет каждому плагину в папке пакета иметь чистую среду для хранения всех связанных файлов.


Например, если у вас было два плагина с более чем одним файлом (например, они оба поставлялись с документацией).

Тогда файловая структура папки vimfiles будет выглядеть примерно так.

vimfiles/
    plugin/
        plugin1.vim
        plugin2.vim
    doc/
        plugin1.txt
        plugin2.txt

Но что происходит, когда вы хотите удалить один из плагинов, вам нужно найти все файлы (и вы можете пропустить некоторые из них).

С установленным Pathogen ваша структура каталогов, вероятно, будет выглядеть примерно так.

vimfiles/
    bundle/
        plugin1/
            plugin/
                plugin1.vim
            doc/
                plugin1.txt
        plugin2/
            plugin/
                plugin2.vim
            doc/
                plugin2.txt

Pathogen добавляет все папки в папке пакета к пути среды выполнения vim. Это позволяет vim находить файлы, а vim ничуть не мудрее, если находится не в обычном месте.

Это также упрощает удаление плагинов. Вам не нужно искать все файлы, поставляемые с плагином, вам просто нужно удалить соответствующую папку из папки пакета.


Просто для завершения. (Вам не нужно этого делать, если вы не хотите)

Установка.

Если вы использовали git, теперь вы можете перейти на страницу github для vim-scripts и найти нужный плагин. Поскольку вы заинтересованы в использовании mru, ссылка на плагин mru: https://github.com/vim-scripts/mru.vim

Теперь, чтобы установить плагин, вам просто нужно зайти в папку с пакетом и запустить

git clone https://github.com/vim-scripts/mru.vim

Все сценарии в репозитории сценариев vim имеют правильную структуру, которую ожидает патоген, поэтому после выполнения этой единственной команды установка плагина завершена.

person FDinoff    schedule 03.05.2013
comment
Примечательно, что это также позволяет легко получить любой из огромного количества плагинов на github (все скрипты vim.org зеркалируются на github), просто перейдя в папку пакета и набрав git clone github/plugin/url. - person Gary Fixler; 04.05.2013
comment
Фредерик: Это работает! Большое спасибо за эту информацию! Я бы никогда не понял, что иерархия папок основана на информации, которую я получал (или, по крайней мере, думал, что получаю) с множества веб-сайтов и форумов. Удачи и еще раз спасибо, Райли SFO - person RBV; 06.05.2013