Vundle. Менеджер плагинов для Vim

Устанавливайте, удаляйте и ищите новые плагины для Vim в одно касание. Ведь Vim без плагинов — это не Vim.

Vundle — это пакетный менеджер для Vim, такой же как Bundler для Ruby. Он организует структуру каталогов, а также позволяет:
  • отслеживать и настраивать плагины прямо в. vimrc
  • устанавливать и обновлять плагины
  • удобно искать плагины(vim-scripts.org, github)
  • удалять неиспользуемые плагины
  • администрировать плагины в интерактивном режиме


image

Обычно .vim каталог имеет такой вид.

    /.vim
    /.vim/ftplugin
    /.vim/ftplugin/plugin1.vim 
    /.vim/ftpluginplugin2.vim
    /.vim/syntax
    /.vim/syntax/plugin1.vim
    /.vim/syntax/plugin2.vim


Проблема, с которой сталкиваются пользователи в этом случае: чтобы обновить плагин надо выяснить, из каких файлов он состоит, найти их, удалить, и только потом можно переустанавливать. С такой последовательностью действий можно справиться, если плагинов немного. Но как только их количество переваливает за десяток, становится поистине страшно.

Vundle призван решить эту проблему. Он делает .vim каталог аккуратным и приводит к следующему виду.

    /.vim
     /.vim/bundle
    /.vim/bundle/plugin1
    /.vim/bundle/plugin1/ftplugin
    /.vim/bundle/plugin1/ftplugin/plugin1.vim
    /.vim/bundle/plugin1/syntax
    /.vim/bundle/plugin1/syntax/plugin1.vim
    /.vim/bundle/plugin2
    /.vim/bundle/plugin2/plugin
    /.vim/bundle/plugin2/plugin/plugin2.vim
    /.vim/bundle/plugin2/syntax
    /.vim/bundle/plugin2/syntax/plugin2.vim


Каждый плагин тихо-смирно лежит в своем каталоге и никого не трогает. А установка Vundle проста:

$ git clone github.com/gmarik/vundle.git ~/.vim/bundle/vundle

Добавляем следующие строки в .vimrc:

set nocompatible
filetype off  “обязательно!

set rtp+=~/.vim/bundle/vundle/

call vundle#rc()

filetype plugin indent on     " обязательно!

"репозитории на github
Bundle 'tpope/vim-fugitive'
Bundle 'lokaltog/vim-easymotion'
Bundle 'rstacruz/sparkup', {'rtp': 'vim/'}

"репозитории vim/scripts
Bundle 'L9'
Bundle 'FuzzyFinder'
Bundle 'rails.vim'

"git репозитории (не на github)
Bundle 'git://git.wincent.com/command-t.git'

"локальные git репозитории(если работаете над собственным плагином)
Bundle 'file:///Users/gmarik/path/to/plugin'


Как видно для github репозиториев нужно всего лишь указать username/repo_name. Для подключения скриптов с vim/scripts нужно указать их имена, используемые на vim​.org. Последний пример показывает как подключить git репозитории.

Теперь у Вас есть список плагинов, которые вы хотите использовать в .vimrc. Что дальше? Открываем Vim и выполняем команду :BundleInstall. Это установит все плагины, записанные в вашем .vimrc. Эта команда также отвечает за обновление плагинов.

Если вы хотите избавиться от плагина, то удалите его из вашего .vimrc (или закомментируйте). Затем простая команда :BundleClean удалит все плагины, которые не прописаны в .vimrc.

Можно глянуть установленные плагины с помощью :BundleList.

Еще один огромный плюс в пользу менеджера плагинов Vundle — это поиск. :BundleSearch foo найдет плагин foo.

Получить помощь можно в wiki. Или проверенный годами :h vundle

Напоследок, Vundle — это производное от Vim bandle.

Источники:
Репозиторий на github.
Мой .vimrc .
Поделиться публикацией
Ой, у вас баннер убежал!

Ну, и что?
Реклама
Комментарии 16
  • +1
    Большое спасибо за статью, менеджер выглядит действительно очень удобным, как bundler. Теперь точно сделаю кастомизованую под себя сборку.
    • 0
      Хороший и лёгкий в настройке манаджер! Давно им пользуюсь и очень доволен
      • 0
        У вас пути почему-то разные, здесь:
        $ git clone github.com/gmarik/vundle.git ~/.vim/bundle/vundle
        и здесь:
        set rtp+=~/.vim/vundle.git/
        Мне кажется, это ошибка.
        • +1
          Да, это ошибка. Исправил. Благодарю за помощь.
        • +1
          А не подскажете — у меня уже скопилась для вима куча плагинов, как бы мне их все «перенести» в Vundle, чтоб не переустанавливать заново? Надеюсь, вы поняли о чем я.
          • 0
            Первое, что приходит в голову. Узнать все названия этих плагинов, удалить их и установить с помощью Vundle. Конечно же, вы можете попытаться рассортировать свои плагины по нужным каталогам, но боюсь, это будет слишком трудоемко. Так что, я бы посоветовал первый вариант.
            • 0
              Такая же проблема. Похоже, легкого решения не существует. Осталось перед удалением найти способ узнать какие файлы принадлежат каким плагинам.
            • 0
              Что-то мой vim из debian testing работать с этим не захотел.
              • 0
                У меня ubuntu 12.04, и все нормально работает. Надо копать. Если что, предлагаю писать в сообщения.
                • 0
                  Что пишет?
                • 0
                  Оно конечно круто… забэкапил свои конфиги… поочереди установил почти все скрипты… но вот затык… есть 2 скрипта с одинаковым названием… один php.vim (indent) а второй php.vim (syntax 5.4)… уже было думал форкнуть и переименовать на гитхабе… но может есть другой вариант?
                  • 0
                    Попробуйте воспользоваться примером Bundle 'git://git.wincent.com/command-t.git'. То есть вместо названия прописать адрес гитхаб репозитория.
                  • 0
                    Не подскажете, почему vundle может плагины не загружать при запуске вима? (ос — оффтопик)
                    Устанавливаю бандлы, перезапускаю вим, пишу :TlistToggle или :NERDTree — not an editor command. Опять пишу :BundlesInstall, показывает окно что все бандлы и так установлены. После этого и taglist и NERDTree работают…
                    • 0
                      Всё оказалось просто — vundle обязательно прописывать в vimrc, а не в Gvimrc…
                    • 0
                      Столкнулся с небольшой проблемой при переносе установленного vundle с Линукса на Винду. Плагин не нашел путь к бандлу, поэтому я исправил vimrc следующим образом:
                      filetype off 
                      if has('win32') || has('win64')
                          set rtp+=$VIM/bundle/vundle/ 
                          call vundle#rc('$VIM/bundle/')
                      else
                          set rtp+=~/.vim/bundle/vundle/
                          call vundle#rc()
                      endif
                      filetype plugin indent on
                      


                      Надеюсь, кому-нибудь пригодится.
                      • 0
                        Не могу понять, почему один из плагинов, установленный через вандл, не определяет тип файла. То есть, если я принудительно указываю filetype, то всё отрабатывает, а автоматически — дудки. Причем, остальные плагины явно работают. Не могу быть уверен, что это связано с вандл (сносить не хочется, что бы проверить), но когда устанавливал самостоятельно, то ничего не подкручивал специально, заработал из коробки.

                        Не знаете, в чем может быть дело? Если что, речь идет о плагине mojo.vim.

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

                        Самое читаемое