2022-12-14 21:04:04 +01:00
|
|
|
# 💤 lazy.nvim
|
|
|
|
|
|
|
|
Modern plugin manager for Neovim
|
2022-11-26 14:31:29 +01:00
|
|
|
|
2022-12-14 21:17:38 +01:00
|
|
|

|
2022-12-14 21:05:25 +01:00
|
|
|
|
2022-11-28 07:36:46 +01:00
|
|
|
## ✨ Features
|
|
|
|
|
2022-12-14 21:04:04 +01:00
|
|
|
- 📦 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](https://devhints.io/semver) support
|
|
|
|
- 📈 Statusline component to see the number of pending updates
|
|
|
|
|
2022-12-14 21:24:51 +01:00
|
|
|
## ⚡️ Requirements
|
|
|
|
|
|
|
|
- Neovim >= **0.8.0**
|
|
|
|
|
2022-12-14 21:41:19 +01:00
|
|
|
## 📦 Installation
|
|
|
|
|
|
|
|
You can use the following Lua code to bootstrap **lazy.nvim**
|
|
|
|
|
|
|
|
```lua
|
|
|
|
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
|
|
|
|
```
|
|
|
|
|
2022-12-14 21:07:06 +01:00
|
|
|
## Profiler
|
|
|
|
|
2022-12-14 21:11:01 +01:00
|
|
|
The profiling view shows you why and how long it took to load your plugins.
|
|
|
|
|
2022-12-14 21:07:06 +01:00
|
|
|

|
|
|
|
|
2022-12-14 21:11:01 +01:00
|
|
|
## Debug
|
2022-12-14 21:08:28 +01:00
|
|
|
|
2022-12-14 21:11:01 +01:00
|
|
|
See an overview of active lazy-loading handlers and what's in the module cache
|
2022-12-14 21:08:28 +01:00
|
|
|
|
2022-12-14 21:11:01 +01:00
|
|
|

|
2022-11-29 15:25:09 +01:00
|
|
|
|
|
|
|
## 📦 Differences with Packer
|
|
|
|
|
|
|
|
- **Plugin Spec**:
|
|
|
|
|
|
|
|
- `setup` => `init`
|
|
|
|
- `requires` => `dependencies`
|
|
|
|
- `as` => `name`
|
2022-12-01 11:32:52 +01:00
|
|
|
- `opt` => `lazy`
|
2022-12-01 13:33:55 +01:00
|
|
|
- `run` => `build`
|
2022-12-02 09:25:25 +01:00
|
|
|
- `lock` => `pin`
|
|
|
|
- `module` is auto-loaded. No need to specify
|
2022-11-30 23:15:14 +01:00
|
|
|
|
|
|
|
## 📦 Other Neovim Plugin Managers in Lua
|
|
|
|
|
|
|
|
- [packer.nvim](https://github.com/wbthomason/packer.nvim)
|
|
|
|
- [paq-nvim](https://github.com/savq/paq-nvim)
|
|
|
|
- [neopm](https://github.com/ii14/neopm)
|
|
|
|
- [dep](https://github.com/chiyadev/dep)
|
|
|
|
- [optpack.nvim](https://github.com/notomo/optpack.nvim)
|
2022-12-03 17:46:10 +01:00
|
|
|
- [pact.nvim](https://github.com/rktjmp/pact.nvim)
|