mirror of https://github.com/folke/lazy.nvim.git
a27be6eb31 | ||
---|---|---|
.github | ||
doc | ||
lua/lazy | ||
tests | ||
.gitignore | ||
.neoconf.json | ||
CHANGELOG.md | ||
README.md | ||
TODO.md | ||
selene.toml | ||
stylua.toml | ||
vim.toml |
README.md
💤 lazy.nvim
Modern plugin manager for Neovim
✨ Features
- 📦 Manage all your Neovim plugins with a fancy UI
- 🚀 Fast startup: Automatically caches and compiles byte code of all lua modules needed during startup
- 💾 Partial clones instead of shallow clones
- 🔌 Auto lazy-loading of lua modules
- 📆 Lazy-loading on events, commands, filetypes and key mappings
- ⏳ Automatically installs missing plugins before starting up so you can start using Neovim right away
- 💪 Async execution for improved performance
- 🛠️ No need to manually compile plugins
- 🧪 Correct sequencing of dependencies
- 📁 Configurable in multiple files
- 💻 Dev option and patterns for using local plugin
- 📊 Profiling tools to optimize performance
- 🔒 Lockfile
lazy-lock.json
to keep track of installed plugin versions - 🔎 Automatically check for updates
- 📋 Commit, branch, tag, version, and full Semver support
- 📈 Statusline component to see the number of pending updates
⚡️ Requirements
- Neovim >= 0.8.0
📦 Installation
You can use the following Lua code to bootstrap lazy.nvim
local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
if not vim.loop.fs_stat(lazypath) then
vim.fn.system({
"git",
"clone",
"--filter=blob:none",
"--single-branch",
"https://github.com/folke/lazy.nvim.git",
lazypath,
})
vim.opt.runtimepath:prepend(lazypath)
end
Profiler
The profiling view shows you why and how long it took to load your plugins.
Debug
See an overview of active lazy-loading handlers and what's in the module cache
📦 Differences with Packer
-
Plugin Spec:
setup
=>init
requires
=>dependencies
as
=>name
opt
=>lazy
run
=>build
lock
=>pin
module
is auto-loaded. No need to specify