Vim по повній менеджер плагінів без фатальних недоліків, savepearlharbor

  1. Введення (vim_lib)
  2. Менеджер плагінів без фатальних недоліків (vim_lib, vim_plugmanager)
  3. Рівень проекту і файлова система (vim_prj, nerdtree)
  4. Snippets і шаблони файлів (UltiSnips, vim_template)
  5. Компіляція і виконання чого завгодно (vim_start)
  6. Робота з Git (vim_git)
  7. Деплой (vim_deploy)
  8. Тестування за допомогою xUnit (vim_unittest)
  9. Бібліотека, на якій все тримається (vim_lib)
  10. Інші корисні плагіни

Я користувався, напевно, усіма популярними менеджерами плагінів для Vim і у мене не було ні найменшого бажання писати свій власний, так як ці мене цілком влаштовували, але було невелике але, про який я розповім в цій статті.

Основною проблемою більшості популярних менеджерів плагінів для Vim є те, що вони заповнюють змінну runtimepath абияк. До чого це веде? Модулі завантажуються безпорядочно, немає можливості перевизначити налаштування плагіна для конкретного проекту, плагіни скасовують ваші власні настройки Vim і т.д. Все ще більше посилюється неможливістю контролювати порядок завантаження плагінів, коли потрібно спочатку завантажити плагін A, а тільки потім залежний від нього Благиня B. Одним словом - біль.

  1. Системному ($ VIMRUNTIME /) - конфігурації і плагіни, які поширюються на всіх користувачів системи
  2. призначені для користувача (
/.vim/) - конфігурації і плагіни конкретного користувача
  • Проектні (./.vim/) - конфігурації і плагіни, доступні тільки в даному проекті. Саме цього рівня немає в Vim, точніше він є, але реалізований досить слабо
  • Бібліотека vim_lib визначає як структуру плагінів Vim (але не обмежує вас тільки цією структурою, може використовуватися будь-який плагін), так і порядок їх підключення і завантаження, для цього реалізовані класи sys / Plugin і sys / Autoload відповідно.

    Якщо реалізувати плагін в суворій відповідності до вимог класу sys / Plugin. то ми отримаємо наступну структуру:

    Файл plugin / myPlugin.vim містить логіку ініціалізації і підключення плагіна.

    Файл doc / myPlugin.rux містить документацію до плагіну.

    Навіщо все це потрібно? По-перше стандартизація. Писати, змінювати і розбиратися в плагінах легшає. По-друге їх простіше відключити.

    Детальніше можна почитати тут.

    /.vimrc)
  • Підключення призначених для користувача плагінів ( /.vim/plugin/)
  • Підключення файло-залежних плагінів користувача ( /.vim/ftplugin/)
  • Підключення основних файлів конфігурації проекту (./.vimrc)
  • Підключення проектних плагінів (./.vim/plugin/)
  • Підключення файло-залежних плагінів проекту (./.vim/ftplugin)
  • Взагалі клас sys / Authoload дозволяє реалізувати будь-яку ієрархію вкладеності і пріоритет конфігурацій, а не тільки триступеневу, але я не побачив необхідності додавати нові рівні.

    Для використання автозавантаження, пропонованої класом sys / Authoload. досить додати в ваш файл .vimrc наступні рядки:

    Зробити це можна не тільки на призначеному для користувача рівні (

    /.vimrc), але і на системному ($ VIMRUNTIME / .vimrc) або проектному (./.vimrc), при цьому логіка автозавантаження буде поширюватися тільки від даного рівня і «нижче». На всіх нізлежайшіх рівнях досить просто підключати нові плагіни, доступні тільки цього рівня:

    Для відключення плагіна, досить просто закоментіровать рядок Plugin 'ім'я'.

    Конфігурувати плагін можна прямо під час його підключення:

    На більш низьких рівнях можна перевизначити ці конфігурації:

    Все дуже гнучко і зручно.

    Здавалося б, що заважає змусити інші менеджери плагінів встановлювати плагіни в потрібні нам каталоги (системний, призначений для користувача або проектний)? Проблема тут в тому, що інші менеджери не просто встановлюють сторонні плагіни, а й визначають порядок з ініціалізації, а нам це не потрібно (вже реалізовано класом sys / Authoload бібліотеки). Та сама проблема несумісності Vim плагінів, про яку я говорив в попередній статті. Довелося писати своє рішення.

    vim_plugmanager має досить простий інтерфейс і дозволяє встановлювати плагіни з GitHub в системний каталог, каталог користувача або проектний каталог, в залежності від того, де ви зараз перебуваєте.

    Вікно із списком плагінів

    Як видно на малюнку, vim_plugmanager реалізований у вигляді вікна, в якому він відображає список встановлених на даний момент плагінів (саме встановлених, а не підключених) з угрупованням за рівнями. Для додавання нового плагіна досить натиснути клавішу a. а для видалення навести курсор на плагін і натиснути dd (дуже звично, чи не так?).

    Детальніше можна почитати тут.

    У цій статті я висвітлив далеко не всі проблеми, зякими я зіткнувся при іспользоніі плагінів Vim, а так само не всі можливості описаних рішень. Не думаю, що варто копіювати документацію, коли вона доступна в загальному доступі.

    Можливо, я міг обійтися вже наявними рішеннями, схрестивши їх між собою, але в цьому випадку був ризик витратити набагато більше часу, а в результаті отримати не те, що мені було потрібно.

    Схожі статті