nixvim setup
Find a file
2026-07-11 13:47:27 +03:00
nixvim Improve Go development workflow 2026-07-11 13:47:27 +03:00
.gitignore update nvim 2026-04-17 13:28:21 +03:00
flake.lock update nvim 2026-04-17 13:28:21 +03:00
flake.nix update nvim 2026-04-17 13:28:21 +03:00
README.md Improve Go development workflow 2026-07-11 13:47:27 +03:00

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 configuration
  • apps.<system>.default / apps.<system>.nvim - runnable Neovim app
  • lib.nixvimModule - reusable NixVim module from ./nixvim

Supported systems:

  • x86_64-linux
  • aarch64-linux
  • x86_64-darwin
  • aarch64-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 and launch.json
  • <leader>o… - project tasks
  • <leader>g… - Git actions
  • [d / ]d and [e / ]e - navigate diagnostics and errors
  • Ctrl-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