lazy.nvim/README.md

2.5 KiB
Raw Blame History

💤 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