Vim вики
Исследовать
Заглавная
Общение
Все страницы
Сообщество
Интерактивные карты
Документация
Настройка
Программирование
Плагины
Сообщество
Чат
Сообщество
FANDOM
Игры
Кино
ТВ
Вики
Исследуйте вики
Вики Сообщества
Создать вики
Нет учётной записи?
Регистрация
Войти
Войти
Регистрация
Vim Ru
29
страниц
Исследовать
Заглавная
Общение
Все страницы
Сообщество
Интерактивные карты
Документация
Настройка
Программирование
Плагины
Сообщество
Чат
Сообщество
Редактирование:
Плагины
Вернуться на страницу
Править
Править код
История
Обсуждение (0)
Редактировать страницу
Плагины
Внимание:
Вы не вошли в систему. Ваш IP-адрес будет общедоступен, если вы запишете какие-либо изменения. Если вы
войдёте
или
создадите учётную запись
, её имя будет использоваться вместо IP-адреса, наряду с другими преимуществами.
Анти-спам проверка.
Не
заполняйте это!
==Структура== *plugin/ **<плагин>.vim - общая инициализация плагина *ftplubin/ **<тип>.vim - типизированная инициализация плагина *autoload/ **<плагин>.vim - компоненты плагина **<плагин>/ - компоненты плагина Остальные каталоги плагина соответствуют правилам загрузки скриптов при инициализации редактора. ==Инициализация== *Условия инициализации плагина - проверка окружения на предмет наличия всех зависимостей плагина <pre> " Проверка, включен ли плагин if !exists("g:<плагин>") finish endif " Проверка зависимостей плагина if !has("<расширение>") echom "<плагин> requires <расширение>" | finish endif </pre> *Формирование опций плагина - объединение пользовательских опций плагина со значениями по умолчанию <pre> let <имя> = extend({ \ <значенияПоУмолчанию> \}, g:<плагин>) </pre> *Инициализацию горячих клавиш плагина <pre> nnoremap <silent> <клавиша> :call g:<плагин>#<функция>()<CR> </pre> *Инициализацию меню плагина <pre> nmenu <silent> Plugins.<плагин>.<действие> :call g:<плагин>#<функция>()<CR> </pre> *Установку обработчиков событий редактора <pre> autocmd <события> <шаблон> call g:<плагин>#<функция>() </pre> *Другую логику инициализации плагина <pre> if !isdirectory('./.vim') call mkdir('./.vim') endif </pre> ===Зависимости=== В случае наличия зависимости между плагинами, приоритет инициализации может быть задан с помощью команды '''packadd''' и вынесения плагинов в область опционального включения (pack/*/opt): <pre> " Файл .vimrc packadd <зависимость> packadd <плагин> </pre> ==Компоненты== Компоненты плагина целесообразно располагать в каталоге '''autoload''' для автоматического подключения по требованию: <pre> " Файл autoload/<плагин>.vim function g:<плагин>#<функция>(<аргументы>) <тело> endfunction </pre> Классы плагина можно регистрировать в подкаталоге: <pre> " Файл autoload/<плагин>/<класс>.vim let s:<класс> = {} function s:<класс>.new(<аргументы) dict <инстанциация> endfunction let g:<плагин>#<класс># = s:<класс> </pre> Если плагин допускает регистрацию обработчиков, необходимо выбрасывать соответствующие события с помощью команды '''doautocmd''': <pre> doautocmd User <плагин>#<событие> </pre>
Описание изменений:
Обратите внимание, что все правки на Vim вики публикуются по лицензии CC-BY-SA
Отменить
Справка по редактированию
(в новом окне)
Follow on IG
TikTok
Join Fan Lab