💤 A modern plugin manager for Neovim
Go to file
Folke Lemaitre a27be6eb31
docs: added bootstrap code
2022-12-14 21:41:19 +01:00
.github ci: changed name of release-please package 2022-11-29 15:55:46 +01:00
doc chore(build): auto-generate vimdoc 2022-12-14 20:18:23 +00:00
lua/lazy fix: updated the bootstrap code 2022-12-14 21:38:40 +01:00
tests test: fixed tests 2022-12-13 10:29:48 +01:00
.gitignore build: added plenary test runner 2022-11-28 07:31:13 +01:00
.neoconf.json feat: added full semver and range parsing 2022-11-28 07:31:43 +01:00
CHANGELOG.md chore(main): release 3.0.0 (#8) 2022-12-13 10:36:11 +01:00
README.md docs: added bootstrap code 2022-12-14 21:41:19 +01:00
TODO.md docs: updated docs 2022-12-14 21:11:06 +01:00
selene.toml build: added selene 2022-12-01 11:23:39 +01:00
stylua.toml style: formatting 2022-11-20 22:34:59 +01:00
vim.toml build: added selene 2022-12-01 11:23:39 +01:00

README.md

💤 lazy.nvim

Modern plugin manager for Neovim

image

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.

image

Debug

See an overview of active lazy-loading handlers and what's in the module cache

image

📦 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

📦 Other Neovim Plugin Managers in Lua