Single init.lua · MIT Licensed · Maintained by the Neovim community

A Neovim config you can actually read.

kickstart.nvim is a documented starting point for your own Neovim setup — not a distro, not a framework. One file, real comments, and just enough LSP, fuzzy-finding, and syntax highlighting to start building the editor you actually want.

30.9k stars 46.5k forks MIT license Created by TJ DeVries
~/ — zsh

What's inside

Everything a modern setup needs. Nothing you have to reverse-engineer.

Every plugin in kickstart.nvim is chosen deliberately and documented inline — you're meant to open the file and read it, not just install it.

LSP

Language servers, pre-wired

Mason installs and manages language servers automatically, with sane defaults for diagnostics, go-to-definition, and formatting.

🔭

Telescope fuzzy finder

Search files, live grep your project, jump between buffers — all through one consistent, fast fuzzy-matching interface.

📦

Built-in plugin manager

Plugins install through vim.pack, Neovim's native package manager — no third-party plugin manager to bootstrap or keep updated separately.

Which-Key

Forget a keymap mid-command and a popup shows you what's available — no need to memorize the whole config on day one.

§

Treesitter highlighting

Structural, syntax-aware highlighting and indentation for dozens of languages, instead of regex-based guesswork.

git

Git integration

Inline git signs, hunk staging, and blame built in via gitsigns — see what changed without leaving the buffer.


Installation

Up and running in about two minutes

Back up any existing config first, then clone kickstart.nvim straight into Neovim's config directory for your OS.

macOS
Linux
Windows
# requires: git, make, unzip, ripgrep — install via Homebrew first
git clone https://github.com/nvim-lua/kickstart.nvim.git "${XDG_CONFIG_HOME:-$HOME/.config}"/nvim
nvim
# requires: git, make, unzip, gcc, ripgrep, fd-find
git clone https://github.com/nvim-lua/kickstart.nvim.git "${XDG_CONFIG_HOME:-$HOME/.config}"/nvim
nvim
# PowerShell — requires git and a C compiler on PATH
git clone https://github.com/nvim-lua/kickstart.nvim.git "$env:LOCALAPPDATA\nvim"
nvim
git make unzip ripgrep fd-find C compiler (gcc) Nerd Font (optional)

Step-by-step guide

Installing kickstart.nvim from scratch

A full walkthrough — from checking prerequisites to your first successful launch. Follow these in order.

01

Check your Neovim version

kickstart.nvim only supports the latest stable or nightly release of Neovim. Open a terminal and run:

# check installed version
nvim --version

If the version printed is older than the current stable release, update Neovim through your package manager (Homebrew on macOS, apt/dnf/pacman on Linux, winget/scoop on Windows) before continuing.

02

Install the required tools

kickstart.nvim leans on a few external programs for search, formatting, and compiling plugins:

git make unzip ripgrep fd-find C compiler (gcc) Nerd Font — optional

Install these with your system's package manager before moving on — Mason will refuse to build some language servers without a C compiler present.

03

Back up any existing configuration

If you already have a Neovim setup, rename it first so nothing is overwritten:

mv ~/.config/nvim ~/.config/nvim.bak
mv ~/.local/share/nvim ~/.local/share/nvim.bak

On Windows PowerShell, use Rename-Item on %LOCALAPPDATA%\nvim instead.

04

Clone the repository

Pick the tab for your operating system and run the matching command:

macOS
Linux
Windows
git clone https://github.com/nvim-lua/kickstart.nvim.git "${XDG_CONFIG_HOME:-$HOME/.config}"/nvim
git clone https://github.com/nvim-lua/kickstart.nvim.git "${XDG_CONFIG_HOME:-$HOME/.config}"/nvim
git clone https://github.com/nvim-lua/kickstart.nvim.git "$env:LOCALAPPDATA\nvim"

Prefer not to use the command line? Use the Download button at the top of this page, unzip it, and place the contents in the same config folder.

05

Launch Neovim for the first time

Simply run:

nvim

On first launch, vim.pack.add calls in init.lua install every plugin automatically using Neovim's built-in package manager. This can take a minute — let it finish before typing anything, then quit and reopen once it's done.

06

Verify everything is healthy

Inside Neovim, run the built-in diagnostic check:

:checkhealth

Look for any red ERROR lines — these usually point to a missing dependency from step 2. Fix those, restart Neovim, and you're ready to start editing your config.


How it fits in

kickstart.nvim vs. a full distribution

Distros like LazyVim or NvChad give you a finished editor. kickstart.nvim gives you a foundation and expects you to build on it.

 kickstart.nvimFull distro (LazyVim / NvChad)
Config sizeSingle file, ~1000 linesDozens of files
Plugins preinstalledMinimal, core-onlyExtensive, opinionated
Best forLearning & customizing from zeroGetting a full IDE fast
Read the whole config in a sittingYesRarely
Update modelYou own your forkTracks upstream releases

Frequently asked

Questions people search alongside "kickstart nvim"

Is kickstart.nvim a Neovim distribution? +

No. Its author is explicit that it's not a framework — it's a small, documented base meant to be forked and edited, not installed and left alone.

Which Neovim version do I need? +

The latest stable or nightly release. Run nvim --version to check, and update via your package manager if you're behind.

Can I keep my old config and try this in parallel? +

Yes. Set NVIM_APPNAME=nvim-kickstart before launching Neovim to use a separate config and data directory, so nothing overwrites your existing setup.

Why is everything in one init.lua file? +

It's intentional. A single, heavily commented file is easier to read top-to-bottom as a teaching reference than a config split across many modules.

How do I uninstall it? +

Delete your config directory and its local data folder — typically ~/.config/nvim and ~/.local/share/nvim — then reinstall whatever you used before.

What's the difference between init.lua and the old init.vim? +

init.vim used Vimscript, while init.lua is written in Lua — Neovim's native scripting language. Lua is generally faster and gives plugins a cleaner, more structured API to work with.

How do I add my own plugins? +

Open init.lua and add a new entry to the vim.pack.add() call, following the same pattern as the existing plugins. Neovim installs it automatically on the next launch.

How do I change the colorscheme? +

Find the colorscheme plugin block in init.lua, swap the plugin name for the one you want, and update the line that calls vim.cmd.colorscheme(...) with its name.

What is the leader key, and how do I use the keymaps? +

The leader key is set to space by default. Press it and wait — the Which-Key popup will show every available keymap grouped by category, so you don't need to memorize them upfront.

Does kickstart.nvim work on Windows? +

Yes, through native PowerShell or WSL. Native Windows needs a C compiler such as MinGW or the Visual Studio Build Tools on your PATH for Treesitter and Mason to build correctly.

How do I install a new language server? +

Run :Mason inside Neovim to open the installer UI, or add the server's name to the ensure_installed list in init.lua so it installs automatically.

How do I update kickstart.nvim once it's installed? +

Since it lives in your own config folder as a git repository, run git pull inside it to fetch upstream changes, then review the diff before merging into your fork.

Is kickstart.nvim beginner-friendly? +

It's approachable if you're willing to read the comments in the file, but it assumes basic familiarity with Neovim and the command line. Complete newcomers may prefer a full distro first.


Fork it. Read it. Make it yours.

The best way to understand Neovim configuration is to start from something small enough to finish reading.