Everything a fresh machine needs. Install the system packages for your OS, clone
this repo, start nvim.
Clone to %LOCALAPPDATA%\nvim on Windows, ~/.config/nvim on Linux.
There are scripts in scripts/ that run these installs for you — windows.ps1
(winget) and arch.sh (pacman). Both install the required list only; pass
-Optional / --optional to get the extras too. Other distros: read the Linux
list and use your own package manager.
"Required" means a first boot needs it. The eight LSP servers in
lua/lsp/servers.lua install themselves on first start whether you want them or
not, and four of those are npm packages, so node is not optional. Nothing
auto-installed needs python or dotnet — those are only for the manual
:MasonInstall line, so they live under optional.
- Neovim 0.12+ —
winget install Neovim.Neovim - Git —
winget install Git.Git - MSVC C/C++ compiler —
winget install Microsoft.VisualStudio.2022.BuildTools -e --override "--quiet --wait --add Microsoft.VisualStudio.Workload.VCTools --includeRecommended" - CMake —
winget install Kitware.CMake - Node.js LTS + npm —
winget install OpenJS.NodeJS.LTS - ripgrep —
winget install BurntSushi.ripgrep.MSVC - A Nerd Font —
winget install DEVCOM.JetBrainsMonoNerdFont, then set it in your terminal curl,tar, PowerShell 5.1 — already in Windows 10/11, nothing to do- tree-sitter CLI — no good winget package, get it from Mason:
:MasonInstall tree-sitter-cli
Optional:
- Python 3 — only for black, ruff and debugpy —
winget install Python.Python.3.13 - .NET SDK — only for Roslyn (C#) and csharpier —
winget install Microsoft.DotNet.SDK.9 - Rust toolchain — only for
rustfmt—winget install Rustlang.Rustup fd— faster Telescopefind_files—winget install sharkdp.fd- VS Code —
<leader>gdopens the cwd in it —winget install Microsoft.VisualStudioCode
sudo pacman -S --needed neovim git gcc make cmake nodejs npm ripgrep unzip \
tree-sitter-cli ttf-jetbrains-mono-nerd wl-clipboard
neovimmust be 0.12+. If the repo version is older, useneovim-gitfrom the AUR.gccandmakecome withbase-develif you already have it. Only those two matter here — gcc compiles treesitter parsers, and gcc pluscmakebuild telescope-fzf-native.unzipis how Mason unpacks stylua and codelldb. It is not inbaseand nothing pulls it in, so it is usually the one that's missing.- Mason also needs
curl,tarandgzip, buttarandgzipship inbaseandcurlis a dependency of pacman itself, so on Arch they are already there. On a minimal non-Arch system, install them. wl-clipboardis for Wayland — usexclipon X11.clipboard = "unnamedplus"inlua/options.luasilently does nothing without one of them.
Optional:
pythonandpython-pip— only for black, ruff and debugpydotnet-sdk— only for Roslyn (C#) and csharpierrustup— only forrustfmtfd— faster Telescopefind_filespostgresql/mariadb-clients— dadbod DBUI needs the client CLI of whatever database you connect to
LSP servers install themselves on first start, from the list in lua/lsp/servers.lua:
ts_ls, pyright, lua_ls, clangd, rust_analyzer, html, cssls, postgres_lsp.
Everything else is manual. Formatters, debug adapters and the C# server:
:MasonInstall stylua prettier black ruff clang-format shfmt csharpier debugpy codelldb netcoredbg roslyn tree-sitter-cli
- Clone this repo into the config path above.
- Start
nvim— lazy.nvim bootstraps itself and installs plugins. :Lazy restoreto pin everything to the committedlazy-lock.json.- Run the
:MasonInstallline above. :checkhealthand fix anything red.
telescope-fzf-native. It's optional. If the toolchain is missing, Telescope
falls back to its built-in Lua sorter and shows a one-time notification. After
installing CMake and a compiler, run :Lazy build telescope-fzf-native.nvim.
cannot open output file libfzf.dll: Permission denied on Windows. That's a
file lock, not a toolchain problem — once nvim has loaded the fzf extension it
holds build/libfzf.dll open and the linker can't overwrite it. Close all
Neovim instances and build from a terminal:
cd /c/Users/yeide/AppData/Local/nvim-data/lazy/telescope-fzf-native.nvim
rm -rf build
cmake -S. -Bbuild -DCMAKE_BUILD_TYPE=Release
cmake --build build --config Release
cmake --install build --prefix build
If it still fails with nvim closed, check for stray processes (Get-Process nvim)
or antivirus briefly locking the new .dll.