nixvim setup
- Nix 100%
| nixvim | ||
| .gitignore | ||
| flake.lock | ||
| flake.nix | ||
| README.md | ||
nvim
Portable Neovim configuration built with NixVim.
This repository exposes a Nix flake that builds a ready-to-run nvim package for Linux and macOS.
Requirements
- Nix with flakes enabled
Usage
Run directly from the repository:
nix run .
Or run the named app:
nix run .#nvim
Build the package:
nix build .
./result/bin/nvim
Run flake checks:
nix flake check
Flake outputs
packages.<system>.default/packages.<system>.nixvim- packaged Neovim configurationapps.<system>.default/apps.<system>.nvim- runnable Neovim applib.nixvimModule- reusable NixVim module from./nixvim
Supported systems:
x86_64-linuxaarch64-linuxx86_64-darwinaarch64-darwin
Features
- Catppuccin Mocha colorscheme with transparent background
- File tree via
nvim-tree - Fuzzy finding, grep, buffers, recent files, symbols, and diagnostics via Telescope
- Git integration with Gitsigns and Lazygit
- Reproducible Treesitter parsers for Go and common backend/configuration formats
- LSP for Lua, Go, Typst, and TypeScript, with inlay hints, code lenses, and reference highlighting
- Go development with Gopls analyses, gofumpt, organize-imports-on-save, and vulnerability code lenses
- Completion with
nvim-cmp, path completion, and LuaSnip navigation - Formatting with conform.nvim (
gofumpt,stylua,black,zprint) - Diagnostics with Trouble, Telescope, navigation mappings, and diagnostic floats
- Go testing via Neotest, including project and race-detector runs
- Project tasks via Overseer for tests, vet, lint, vulnerability checks, and code generation
- Debugging with DAP, DAP UI, virtual text, and Go debugging support
- Floating terminal via ToggleTerm
- tmux pane navigation integration
Keymap highlights
The leader key is Space.
<leader>f…- find files, text, buffers, recent files, symbols, and diagnostics<leader>c…- code actions, diagnostics, symbols, code lenses, and formatting<leader>t…- tests, inlay hints, and terminal<leader>d…- debugging, including Go tests andlaunch.json<leader>o…- project tasks<leader>g…- Git actions[d/]dand[e/]e- navigate diagnostics and errorsCtrl-h/j/k/l- navigate Neovim splits and tmux panes
Layout
.
├── flake.nix # Flake outputs and supported systems
├── flake.lock # Locked dependency versions
└── nixvim/ # Modular NixVim configuration
├── default.nix
├── options.nix
├── keymaps.nix
├── ui.nix
├── git.nix
├── editing.nix
├── completion.nix
├── lsp.nix
├── go.nix
├── testing.nix
└── tools.nix