Что это такое?
lazy.nvim — это современный менеджер плагинов для Neovim. Он устанавливает и обновляет ваши плагины, показывает их во встроенном интерфейсе и сохраняет быстрый запуск Neovim за счёт автоматического кеширования, компиляции в байткод и отложенной загрузки.
Это отдельная программа, которую нужно устанавливать, или что-то, что живёт внутри Neovim?
Он живёт внутри Neovim: lazy.nvim — сам по себе плагин Neovim, написанный на Lua, который вы добавляете в свой конфиг. И уже оттуда он управляет всеми остальными плагинами.
Как его настроить?
Вы добавляете lazy.nvim в конфиг Neovim; после этого он автоматически устанавливает все недостающие плагины ещё до запуска Neovim, так что пользоваться им можно сразу. Пошаговое руководство есть на сайте документации.
Что нужно на компьютере, чтобы он работал?
Neovim 0.8.0 или новее, собранный с LuaJIT, плюс Git 2.19.0+ для частичного клонирования. Nerd Font необязательна, а luarocks нужен только для rockspecs — это можно отключить, убрав rockspec из opts.pkg.sources.
Он работает и на Windows, или только на macOS и Linux?
Он работает везде, где запускается Neovim, то есть на Windows, macOS и Linux — это Lua-плагин внутри редактора, а не нативный бинарник.
Как он сохраняет быстрый запуск?
Он кеширует Lua-модули и компилирует их в байткод, откладывает загрузку плагинов до событий, команд, типов файлов и сочетаний клавиш, выполняет работу асинхронно и даже автоматически откладывает загрузку цветовых схем. Частичное клонирование вместо поверхностного тоже делает установку легче.
Можно ли зафиксировать плагины на конкретных версиях?
Да — lazy.nvim поддерживает коммиты, ветки, теги, версии и полноценный Semver, а также создаёт файл lazy-lock.json, в котором отслеживается, что установлено. Он ещё и сам проверяет обновления, а компонент в статусной строке показывает, сколько обновлений ожидает.
Я разрабатываю свой плагин — можно ли подключать локальную копию вместо опубликованного репозитория?
Да, для работы с локальными плагинами есть опции dev и шаблоны путей, так что свой плагин можно разрабатывать через lazy.nvim как любой другой.
Вся конфигурация плагинов должна лежать в одном файле?
Нет, конфигурацию можно разнести по нескольким файлам. В придачу lazy.nvim генерирует helptags из заголовков README.md плагинов, если у плагина нет vimdocs.
What are similar projects?
LazyVim, mason.nvim, telescope.nvim, LunarVim, ale, SpaceVim, nvim-lspconfig, AstroNvim
Which topics is it in?
neovim-plugin, nvim, plugin-manager, neovim, lua, vim, caching, package-manager, async, editor, tui, git
