One flake. One command. A fully loaded Neovim.
A reproducible, cross-platform Nixvim configuration for Linux and macOS.
If you already have Nix with flakes enabled, try the configuration without cloning anything:
nix run github:yolofanhd/nixvim-configOr run a local checkout:
git clone https://github.com/yolofanhd/nixvim-config.git
cd nixvim-config
nix run .Tip
The map leader is the backtick key: `
- Editor essentials — relative line numbers, persistent undo, smart search, system clipboard integration, sensible splits, and Gruvbox.
- IDE features — LSP, completion, snippets, formatting, linting, diagnostics, testing, and debugging.
- Fast navigation — Snacks pickers, NvimTree, Flash, sessions, and undo history.
- Git workflow — Gitsigns, Fugitive, Diffview, and conflict helpers.
- Language tooling — dedicated support for Nix, Rust, and LaTeX alongside the general LSP stack.
- Reproducible everywhere — the same flake runs on x86_64 and ARM64 Linux and macOS.
.
├── flake.nix # Packages, dev shell, formatter, and checks
└── config
├── default.nix # Module entry point and colorscheme
├── options.nix # Core Neovim options
├── mappings.nix # Key bindings
├── auto_cmd.nix # Autocommands
├── plugins.nix # Plugin registry
└── plugins/ # Focused plugin configuration modules
Plugin configuration stays split into small Nix modules, while plugins.nix is the
single inventory. This keeps additions discoverable without turning the entry point
into one large file.
Enter the repository shell to get the formatter and static-analysis tools:
nix developFormat and validate changes:
nix fmt
nix flake checkThe checks build the generated Nixvim configuration, verify Nix formatting, run
statix and deadnix, and validate the GitHub Actions workflows.
Update pinned flake inputs with:
nix flake updateKey bindings
| Mode | Key | Action |
|---|---|---|
| Normal | n | Toggle NvimTree |
| Normal | ff | Smart file search |
| Normal | fw | Search file contents |
| Normal | fb | List buffers |
| Normal | fg | List Git commits |
| Normal | fB | List Git branches |
| Normal | fD | View Git diff |
| Normal | fo | Open recent files |
| Normal | fu | Browse undo history |
| Normal | fd | Browse diagnostics |
| Normal | fe | Browse TODO comments |
| Normal | fs | Search sessions |
| Mode | Key | Action |
|---|---|---|
| Normal | K | Show hover information |
| Normal | gd | Go to definition |
| Normal | gD | Go to declaration |
| Normal | gi | Go to implementation |
| Normal | go | Go to type definition |
| Normal | gr | List references |
| Normal | gs | Show signature help |
| Normal | gl | Show line diagnostics |
| Normal | [d / ]d | Previous / next diagnostic |
| Normal | F2 | Rename symbol |
| Normal / Visual | F4 | Code action |
| Mode | Key | Action |
|---|---|---|
| Normal | cl | Toggle comment |
| Normal | t | Toggle floating terminal |
| Terminal | Esc | Close floating terminal |
| Normal | dn | Dismiss notifications |
| Normal | `du | Toggle debugger UI |