Neovim config for the lazy
Find a file
akioweh de3cd1fb32
fix: check buffer validity in autocmd to prevent keymap.set() throwing
the buffer that triggered the autocmd could be gone by the time
vim.schedule runs keymap.set, e.g. with transient buffers created by
nvim_get_option_value
2026-05-16 05:39:14 +01:00
.github chore(main): release 15.15.0 (#7034) 2026-04-02 10:13:57 +02:00
doc chore(build): auto-generated vimdocs 2026-04-26 18:17:07 +00:00
lua/lazyvim fix: check buffer validity in autocmd to prevent keymap.set() throwing 2026-05-16 05:39:14 +01:00
queries/lua feat(lua): added LazyVim as a treesitter builtin 2024-05-15 15:31:08 +02:00
scripts ci: update test scripts 2025-10-08 21:26:13 +02:00
tests test: fix tests 2026-03-20 23:16:04 +01:00
.editorconfig chore(update): update repository (#4054) 2024-07-15 17:09:19 +02:00
.gitignore ci: update 2024-07-06 23:45:22 +02:00
.markdownlint-cli2.yaml chore(update): update repository (#6712) 2025-10-28 16:14:16 +01:00
.neoconf.json build: neoconf sumneko_lua => lua_ls 2023-03-04 10:41:52 +01:00
CHANGELOG.md chore(main): release 15.15.0 (#7034) 2026-04-02 10:13:57 +02:00
CONTRIBUTING.md docs: added LSP keymap specs to CONTRIBUTING.md 2025-10-23 09:26:48 +02:00
init.lua feat(init)!: disable init.lua and show a message on how to use LazyVim 2023-01-07 11:44:40 +01:00
LICENSE docs: added LICENSE 2023-01-01 09:48:09 +01:00
NEWS.md docs(treesitter): fix checkhealth command (#6433) 2025-09-17 10:40:37 +02:00
README-CN.md docs(README): bump Neovim requirement to 0.11.2 (#6611) 2025-10-11 08:48:48 +02:00
README-DE.md docs(README): bump Neovim requirement to 0.11.2 (#6611) 2025-10-11 08:48:48 +02:00
README-ES.md docs(README): bump Neovim requirement to 0.11.2 (#6611) 2025-10-11 08:48:48 +02:00
README-FR.md docs(fr): add readme in french (#5300) 2025-10-20 00:01:17 -07:00
README-IT.md docs(README): bump Neovim requirement to 0.11.2 (#6611) 2025-10-11 08:48:48 +02:00
README-JP.md docs(README): bump Neovim requirement to 0.11.2 (#6611) 2025-10-11 08:48:48 +02:00
README-KO.md docs(README): bump Neovim requirement to 0.11.2 (#6611) 2025-10-11 08:48:48 +02:00
README-PL.md Added Polish translation of README (README-PL.md) (#5816) 2025-10-19 23:59:40 -07:00
README-PT.md docs(README): bump Neovim requirement to 0.11.2 (#6611) 2025-10-11 08:48:48 +02:00
README.md docs: remove video from readme, since it's outdated 2025-10-20 16:11:03 +02:00
selene.toml ci: update 2024-07-05 15:31:26 +02:00
stylua.toml build(format): sort requires 2023-10-09 11:34:23 +02:00
vim.yml ci: update test scripts 2025-10-08 21:26:13 +02:00


Install · Configure · Docs

LazyVim is a Neovim setup powered by 💤 lazy.nvim to make it easy to customize and extend your config. Rather than having to choose between starting from scratch or using a pre-made distro, LazyVim offers the best of both worlds - the flexibility to tweak your config as needed, along with the convenience of a pre-configured setup.

image

image

Features

  • 🔥 Transform your Neovim into a full-fledged IDE
  • 💤 Easily customize and extend your config with lazy.nvim
  • 🚀 Blazingly fast
  • 🧹 Sane default settings for options, autocmds, and keymaps
  • 📦 Comes with a wealth of plugins pre-configured and ready to use

Requirements

  • Neovim >= 0.11.2 (needs to be built with LuaJIT)
  • Git >= 2.19.0 (for partial clones support)
  • a Nerd Font (optional)
  • a C compiler for nvim-treesitter. See here

🚀 Getting Started

You can find a starter template for LazyVim here

Try it with Docker
docker run -w /root -it --rm alpine:edge sh -uelic '
  apk add git lazygit fzf curl neovim ripgrep alpine-sdk --update
  git clone https://github.com/LazyVim/starter ~/.config/nvim
  cd ~/.config/nvim
  nvim
'
Install the LazyVim Starter
  • Make a backup of your current Neovim files:

    mv ~/.config/nvim ~/.config/nvim.bak
    mv ~/.local/share/nvim ~/.local/share/nvim.bak
    
  • Clone the starter

    git clone https://github.com/LazyVim/starter ~/.config/nvim
    
  • Remove the .git folder, so you can add it to your own repo later

    rm -rf ~/.config/nvim/.git
    
  • Start Neovim!

    nvim
    

    Refer to the comments in the files on how to customize LazyVim.


@dusty-phillips wrote a comprehensive book called LazyVim for Ambitious Developers available for free online.

📂 File Structure

The files under config will be automatically loaded at the appropriate time, so you don't need to require those files manually. LazyVim comes with a set of default config files that will be loaded before your own. See here

You can add your custom plugin specs under lua/plugins/. All files there will be automatically loaded by lazy.nvim

~/.config/nvim
├── lua
│   ├── config
│   │   ├── autocmds.lua
│   │   ├── keymaps.lua
│   │   ├── lazy.lua
│   │   └── options.lua
│   └── plugins
│       ├── spec1.lua
│       ├── **
│       └── spec2.lua
└── init.lua

⚙️ Configuration

Refer to the docs