You Opened Neovim. Now What.
You’ve decided vanilla Vim is for people who enjoy suffering, and bare Neovim config from scratch is a four-week side project you don’t have time for. So you googled “Neovim starter config” and now you’re drowning in Reddit threads, GitHub stars, and three different Discord servers arguing about which distro is the One True Way.
Here’s the thing: all three of the big ones — LazyVim, LunarVim, and AstroNvim — are genuinely good. The question is which one fits your brain and your workflow, because picking the wrong one is how you end up spending Saturday night reading plugin source code instead of actually coding.
Let’s break them down honestly.
What Even Is a Neovim Distro?
A “distro” in Neovim terms is a curated, opinionated Lua configuration that ships with a plugin manager, LSP support, completion, file tree, fuzzy finder, and a bunch of keybindings already wired up. You install it, open Neovim, and it mostly just works.
The three biggest ones as of mid-2026:
- LazyVim — built on top of
lazy.nvim, by the same author (folke). The current community default. - LunarVim — the OG community distro, been around since 2021, uses
lazy.nvimunder the hood now after migrating frompacker. - AstroNvim — highly modular, community-driven, great IDE feel out of the box.
All three ship with:
- LSP via
nvim-lspconfig+ Mason for server management - Completion via
nvim-cmporblink.cmp - Treesitter for syntax highlighting
- Telescope or
fzf-luafor fuzzy finding - A statusline, file tree, and buffer tabs
The differences are in philosophy, extensibility, and how much they stay out of your way.
LazyVim — The “It Just Works” Answer
LazyVim is what happens when the guy who wrote the best plugin manager (lazy.nvim) decides to build a config on top of it. It’s opinionated but not tyrannical.
Install:
# Back up your existing config firstmv ~/.config/nvim ~/.config/nvim.bak
# Clone LazyVim startergit clone https://github.com/LazyVim/starter ~/.config/nvimrm -rf ~/.config/nvim/.git
# Launch and let it do its thingnvimFirst launch downloads and installs everything. Takes about 30 seconds on a decent connection.
What you get by default:
lazy.nvimas the plugin manager (duh)mason.nvim+mason-lspconfigfor installing language serversnvim-cmpfor completion (migrating toblink.cmpin newer configs)neo-tree.nvimfor the file treetelescope.nvimfor fuzzy findingwhich-key.nvimso you don’t have to memorize 400 keybindings at oncetokyonightas the default theme (very configurable)
Extending it:
LazyVim has an “extras” system. Want Python LSP support? One line:
-- Enable a LazyVim extrareturn { { import = "lazyvim.plugins.extras.lang.python" },}That pulls in pyright, the Python Treesitter parser, debug adapter config, and test runner integration. Same pattern for Go, Rust, TypeScript, Docker, and about 40 other extras as of LazyVim 12.x.
Overriding defaults:
return { -- swap telescope for fzf-lua { "nvim-telescope/telescope.nvim", enabled = false }, { "ibhagwan/fzf-lua", opts = { winopts = { height = 0.85, width = 0.90 }, }, },}LazyVim loads your ~/.config/nvim/lua/plugins/ files and merges them with the base config. You’re not fighting it; you’re layering on top.
Who it’s for: You want a solid config that’s close to community standard, you don’t want to design a plugin ecosystem from scratch, and you trust folke’s taste. Honestly? Most people.
Who it’s not for: You have very specific workflow opinions and want to rebuild from primitives. LazyVim’s defaults are strong enough that fighting them gets annoying fast.
LunarVim — The Battle-Hardened Veteran
LunarVim (lvim) is the oldest of the three mainstream distros. It had a rocky period when packer died and it migrated to lazy.nvim, but as of 2025 it’s stable and actively maintained. It takes a more “wrap everything in an abstraction” approach.
Install:
# LunarVim has its own installer scriptbash <(curl -s https://raw.githubusercontent.com/LunarVim/LunarVim/release-1.4/utils/installer/install.sh)That script installs lvim as its own binary separate from nvim. Your existing Neovim config stays untouched. That’s actually a nice property — you can run both side by side.
The config lives here:
~/.config/lvim/config.luaLunarVim exposes a lvim global table for all configuration:
-- Basic LunarVim configlvim.log.level = "warn"lvim.format_on_save.enabled = truelvim.colorscheme = "lunar"
-- LSPlvim.lsp.installer.setup.ensure_installed = { "lua_ls", "rust_analyzer", "gopls",}
-- Extra pluginslvim.plugins = { { "folke/trouble.nvim", cmd = "TroubleToggle", },}LunarVim abstracts a lot of the LSP and completion wiring behind its own layer. That means less boilerplate for you, but it also means when something breaks you have to figure out if it’s LunarVim’s wrapper or the underlying plugin.
What’s good about it:
- Ships with a very complete default experience. Bufferline, integrated terminal, DAP for debugging — all configured.
- The separate
lvimbinary means you can experiment without nuking your day-to-day setup. - Strong opinionated keybindings that follow a consistent
<leader>pattern. - Built-in support for GitHub Copilot, Tabnine, and Codeium through its plugin ecosystem.
What’s annoying:
- The abstraction layer. When
nvim-cmpchanged its API in early 2025, LunarVim users had a rough week waiting for the wrapper to catch up. LazyVim users just updated a plugin spec. - Documentation hasn’t always kept pace with internal changes.
- The installer script approach means upgrades sometimes feel more fragile than just
git pull.
Upgrading:
lvim updateSimple, but occasionally produces surprises.
Who it’s for: You want a batteries-included IDE experience and you’re willing to trust LunarVim’s abstraction layer. Also good if you want to keep your vanilla Neovim install separate.
Who it’s not for: Tinkerers who want to understand exactly what’s happening under the hood. The abstraction layer gets in the way once you’re past beginner level.
AstroNvim — The Community Modular One
AstroNvim leans hard into modularity. It ships with an “AstroCommunity” plugin collection and a pattern of “astrocommunity packs” that bundle language support the same way LazyVim’s extras work, but with a bigger community-contributed catalog.
Install:
mv ~/.config/nvim ~/.config/nvim.bak
git clone --depth 1 https://github.com/AstroNvim/template ~/.config/nvimrm -rf ~/.config/nvim/.gitnvimStarts from a template repo, similar to LazyVim. First launch installs everything.
Config structure:
~/.config/nvim/ lua/ plugins/ astrocommunity.lua ← community packs user.lua ← your custom plugins community.lua ← AstroCommunity imports init.luaAdding a language pack from AstroCommunity:
return { "AstroNvim/astrocommunity", -- Python pack: LSP, debugger, linter, formatter { import = "astrocommunity.pack.python" }, -- Rust pack { import = "astrocommunity.pack.rust" }, -- Docker support { import = "astrocommunity.pack.docker" },}AstroCommunity has packs for 40+ languages and a solid collection of colorscheme packs, motion plugins, and workflow tools. The community contribution model means it often has niche language support before LazyVim’s extras do.
Overriding core behavior:
AstroNvim uses an “AstroCore” plugin for core settings:
return { { "AstroNvim/astrocore", opts = { mappings = { n = { -- Remap buffer close ["<leader>bd"] = { "<cmd>bdelete<cr>", desc = "Close buffer" }, }, }, }, },}This is more explicit than LazyVim’s approach but also more predictable. You know exactly where keybindings live.
What’s good about it:
- Genuinely beautiful default UI. Heirline statusline, nice bufferline, good default theme selection.
- AstroCommunity is actively maintained with a lot of contributors.
- Very IDE-like out of the box — feels closer to VS Code than the other two in terms of visual chrome.
- Consistent update philosophy with a changelog that actually documents breaking changes.
What’s annoying:
- The extra layer of “AstroCore / AstroUI / AstroLSP” plugins can be confusing when you’re trying to override something. You need to know which AstroNvim core plugin owns the thing you want to change.
- Startup time is occasionally slower than LazyVim with an equivalent plugin set, though lazy loading mitigates most of it.
Startup benchmarks (approximate, mid-2025 hardware):
| Distro | Cold start (no plugins cached) | Warm start |
|---|---|---|
| LazyVim | ~80ms | ~35ms |
| LunarVim | ~110ms | ~55ms |
| AstroNvim | ~95ms | ~45ms |
These numbers shift a lot based on your plugin count and LSP setup. Don’t pick a distro based on 20ms.
Head-to-Head: The Things That Actually Matter
Plugin Manager
All three use lazy.nvim now. LunarVim was the last holdout and completed its migration in 2024. This is a non-issue.
LSP / Mason
All three handle LSP through nvim-lspconfig + mason.nvim. The difference is how much they abstract the wiring:
- LazyVim: You configure LSP servers in
lua/plugins/using standardlspconfigopts. Familiar, well-documented. - LunarVim:
lvim.lsp.installer.setup.ensure_installedpluslvim.langfor per-language overrides. Slightly opaque. - AstroNvim: AstroLSP plugin handles server setup. Clear but you need to read AstroLSP docs, not just nvim-lspconfig docs.
Keybindings
All three use <Space> as leader by default. All three ship with which-key.nvim. The specific bindings differ enough that switching distros means relearning muscle memory for about a week.
LazyVim’s bindings feel the most “thought out” to me — they follow a clear noun/verb pattern. AstroNvim’s are clean too. LunarVim’s can feel inconsistent in spots.
Debugging (DAP)
All three support nvim-dap for debugging. AstroNvim includes it by default in many language packs. LazyVim’s extras include it per-language. LunarVim has it but configuration is a bit more manual.
If debugging in Neovim is important to you, AstroNvim or LazyVim with the relevant extra is the less painful path.
Community Size / Support
- LazyVim: Largest. folke is extremely active, the GitHub discussion board is busy, and it’s what most tutorials assume.
- AstroNvim: Strong community, active Discord, AstroCommunity contributions are frequent.
- LunarVim: Smaller, less active, but not dead. Core team is responsive, just slower.
If you’re going to hit weird config issues at 11 PM (and you will), community size matters.
The Decision Tree
Pick LazyVim if:
- You’re new to Neovim distros and want the path of least resistance
- You care about startup time and lazy loading granularity
- You want the most tutorials, blog posts, and Stack Overflow answers pointing at your setup
- You want to understand what’s happening and be able to dive into the source
Pick LunarVim if:
- You want a completely separate
lvimbinary that doesn’t touch your existing Neovim setup - You want an opinionated, pre-wired IDE feel and don’t mind the abstraction layer
- You’re on a team where other people are already using it
Pick AstroNvim if:
- You want the most IDE-like visual experience out of the box
- You’re going to be working in a lot of different languages and want AstroCommunity’s breadth
- You like a more explicit, structured config architecture
- VS Code refugees who want Neovim to look familiar will be more comfortable here
Quick Migration Note
If you’ve already got one of these installed and want to try another, don’t just delete ~/.config/nvim. Neovim caches a lot:
# Full clean slaterm -rf ~/.config/nvimrm -rf ~/.local/share/nvimrm -rf ~/.local/state/nvimrm -rf ~/.cache/nvimFor LunarVim specifically (separate binary):
# LunarVim uninstallbash <(curl -s https://raw.githubusercontent.com/LunarVim/LunarVim/release-1.4/utils/installer/uninstall.sh)The Bottom Line
Honestly, if you’re asking “which one should I start with?” the answer in 2026 is LazyVim. It has the most active ecosystem, the best documentation, and the lowest floor for getting productive. The extras system is genuinely well-designed.
If you already know your way around Neovim and want something with more visual chrome and a bigger community plugin catalog, AstroNvim is a serious competitor and not a step down.
LunarVim is fine — it’s just not the first recommendation anymore unless you have a specific reason (the separate binary thing is legitimately useful in some workflows).
The good news: all three are free, all three can be wiped and replaced in ten minutes, and all three will make you faster than using VS Code after you’ve put in the reps. Pick one and actually use it for a month before deciding it’s wrong for you. The grass is always greener in the other distro’s README.