1

Я пытаюсь использовать Pathogen для управления моими расширениями Vim. Моя папка-пакет выглядит так:

.../bundle/
├── vim-pathogen
│   └── autoload
│       └── pathogen.vim
└── vim-smoothscroll
    └── autoload
        └── smooth_scroll.vim

И мой файл vimrc включает это:

let s:root = fnamemodify(resolve(expand(":p")), ":h")

" Initiate pathogen.
exec "source " . s:root . "/vimfiles/bundle/vim-pathogen/autoload/pathogen.vim"
exec pathogen#infect()

Мой файл vimrc - это символическая ссылка, расположенная в ~, но указывающая на папку внутри папки Dropbox.

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

:set runtimepath?
runtimepath=~/Dropbox/Personal/config_sync/vim/vimfiles,~/Dropbox/Personal/config_sync/vim/vimfiles/bundle/vim-p
athogen,~/Dropbox/Personal/config_sync/vim/vimfiles/bundle/vim-smoothscroll,~/.vim,~/vim/share/vim/vimfiles,~/vim/
share/vim/vim74,~/vim/share/vim/vimfiles/after,~/.vim/after

Проблема в том, что скрипт smooth_scroll.vim не был загружен:

  1: ~/.vimrc
  2: ~/Dropbox/Personal/config_sync/vim/vimfiles/bundle/vim-pathogen/autoload/pathogen.vim
  3: ~/vim/share/vim/vim74/syntax/syntax.vim
  4: ~/vim/share/vim/vim74/syntax/synload.vim
  5: ~/vim/share/vim/vim74/syntax/syncolor.vim
  6: ~/vim/share/vim/vim74/filetype.vim
  7: ~/vim/share/vim/vim74/menu.vim
  8: ~/vim/share/vim/vim74/autoload/paste.vim
  9: ~/Dropbox/Personal/config_sync/vim/vimfiles/colors/codeschool.vim
 10: ~/Dropbox/Personal/config_sync/vim/_vimrc_gui
 11: ~/Dropbox/Personal/config_sync/vim/_vimrc_keybinds
 12: ~/vim/share/vim/vim74/plugin/getscriptPlugin.vim
 13: ~/vim/share/vim/vim74/plugin/gzip.vim
 14: ~/vim/share/vim/vim74/plugin/matchparen.vim
 15: ~/vim/share/vim/vim74/plugin/netrwPlugin.vim
 16: ~/vim/share/vim/vim74/plugin/rrhelper.vim
 17: ~/vim/share/vim/vim74/plugin/spellfile.vim
 18: ~/vim/share/vim/vim74/plugin/tarPlugin.vim
 19: ~/vim/share/vim/vim74/plugin/tohtml.vim
 20: ~/vim/share/vim/vim74/plugin/vimballPlugin.vim
 21: ~/vim/share/vim/vim74/plugin/zipPlugin.vim
 22: ~/vim/share/vim/vim74/syntax/ruby.vim
 23: ~/vim/share/vim/vim74/syntax/vim.vim
 24: ~/vim/share/vim/vim74/syntax/python.vim

Это почему? Загрузка скрипта вручную работает нормально.

1 ответ1

6

Вы делаете сумасшедшие вещи с вашей настройкой. Вы нашли способ по умолчанию слишком простым и надежным?

  • Файлы времени выполнения Vim, все в /share/vim/vim74 , должны находиться в /usr/share/vim/vim74 . Вы установили Vim в свой $HOME из-за проблем с привилегиями?

  • Все ваши личные вещи (схемы цветов, плагины, синтаксические скрипты ...) должны идти в ~/.vim . Этот каталог может быть символической ссылкой на этот каталог vimfiles в вашем Dropbox, который уберет "необходимость" для всех ваших хаков. Если вы работаете в Linux, просто выполните:

    ln -s /home/username/Dropbox/Personal/config_sync/vim/vimfiles /home/username/.vim
    
  • pathogen.vim не должен быть таким source . Он находится в каталоге autoload именно потому, что механизм autoload позволяет ему быть source d, чтобы сэкономить время при запуске.

    Кроме того, файл pathogen.vim должен находиться в ~/.vim/autoload/ .

    При "нормальной" настройке или символической ссылке, которая делает Vim "нормальным", нет необходимости проходить через все эти циклы.

  • smooth_scroll.vim не должен находиться в каталоге autoload , он входит в каталог plugin , почему вы это изменили? Вот почему плагин не работает.

  • Знаете ли вы, что 7.4 теперь выглядит как для ~/.vimrc и для ~/.vim/vimrc? Это значительно упрощает управление вашей конфигурацией, сохраняя все в одном каталоге.

Шаг 1: измените структуру этого vimfiles в вашем дропбоксе так:

/home/username/Dropbox/Personal/config_sync/vim/vimfiles/
  +-autoload/
  |   +-pathogen.vim
  +-bundle/
      +-vim-smoothscroll/
        +-plugin/
          +-smooth_scroll.vim

Шаг 2: переместите ваш vimrc в каталог vimfiles в вашем выпадающем списке .

Шаг 3: удалите все ненужные связанные с путем вещи в этом файле. Связанная с патогеном часть должна выглядеть так:

execute pathogen#infect()
execute pathogen#helptags()

Шаг 4: удалите ваш ~/.vimrc:

$ cd
$ unlink .vimrc

Шаг 5: создайте символическую ссылку на каталог, синхронизированный с Dropbox:

$ ln -s /home/username/Dropbox/Personal/config_sync/vim/vimfiles /home/username/.vim

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .