4

Как и многие из вас, моя пользовательская конфигурация Vim хранится в моем ~/.vimrc , а плагины, цвета и т.д. ~/.vim/plugins , ~/.vim/colors и т.д.

Я хочу поделиться единой конфигурацией Vim между многими серверами. Некоторые из этих серверов работают с Vim 7, другие - с более старой Vim 6. Большинство плагинов Vim предназначены для Vim 7, но более старые версии все еще существуют для тех из нас, кто работает на старых системах. Смотрите DirDiff для примера.

Если я работаю в системе с Vim 6, как я могу настроить Vim на использование только Vim 6-совместимых плагинов?

Я думал о том, чтобы сохранить старые плагины в подкаталоге, например ~/.vim/plugins6/ и оставить плагины Vim в ~/.vim/plugins , но как я могу сказать Vim6 игнорировать ~/.vim/plugins и использовать ~/.vim/plugins6 вместо этого?

3 ответа3

4

В вашем .vimrc вам нужно будет проверить версию vim и, соответственно, обновить ваш & runttimepath.

РЕДАКТИРОВАТЬ:

Виноват. Архитектура каталогов Vim жестко запрограммирована. Вместо этого у вас должен быть каталог ~/.vim6 котором есть символические ссылки на все ´/.vim кроме plugin/ и after/plugin , и вы должны добавить следующее в ваш .vimrc:

if version < 700
   let &rtp=substitute(&rtp, '\.vim', '&6', 'g')
endif
0

Вы можете сделать так, чтобы ваш vimrc проверил версию vim, а затем поставил все плагины из определенной папки.

if &loadplugins
  if v:version >= 700
    runtime! plugin7/*.vim
    runtime! plugin7/**/*.vim
  elseif v:version >= 600
    runtime! plugin6/*.vim
    runtime! plugin6/**/*.vim
  endif
endif
0

Я бы попробовал сделать это так:

HOME=<customdir1> <vim binary version1>

HOME=<customdir2> <vim binary version2>

HOME - это переменная окружения. Для удобства вы можете заключить эти вызовы в сценарии оболочки.

Этот общий подход часто работает.

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