A modern, feature-rich Neovim configuration built with nvf — a Nix-native Neovim framework.
nix run github:neonvoidx/nvim # run directly
nix build github:neonvoidx/nvim # buildOr add as flake input:
inputs = {
nvim.url = "github:neonvoidx/nvim";
}Or clone and run locally:
git clone git@github.com:neonvoidx/nvim.git ~/nvim
cd ~/nvim
nix run .#- Nix with flakes enabled
- A Nerd Font (for icons)
- Kitty terminal (for navigator integration)
flake.nix # Flake inputs, userPlugins, package output
flake.lock # Pinned inputs
config/
default.nix # Imports all plugin modules
options.nix # Neovim options
keymaps.nix # Global keymaps
autocmds.nix # Autocommands
plugins/ # One .nix file per feature area
snippets/ # Custom VSCode-format snippets
stylua.toml # Lua formatter config (120-col, 2-space, double quotes)
- eldritch.nvim — Colorscheme
- lualine.nvim — Statusline
- bufferline.nvim — Buffer tabs
- snacks.nvim — Dashboard, picker, notifier, indent guides, scrollbar, lazygit, and more
- noice.nvim — Enhanced cmdline/messages UI
- which-key.nvim — Keybinding hints
- nvim-highlight-colors — Inline color previews
- tiny-inline-diagnostic.nvim — Inline diagnostics
- blink.cmp — Completion engine
- blink-copilot — Copilot source for blink.cmp
- lazydev.nvim — Neovim Lua API completions
- clangd_extensions.nvim — Enhanced clangd
- rustaceanvim — Rust tooling
- inc-rename.nvim — Incremental LSP rename
- trouble.nvim — Diagnostics list
- copilot.lua — GitHub Copilot
- nvim-treesitter — Syntax highlighting & more
- nvim-treesitter-context — Sticky context header
- nvim-treesitter-endwise — Auto-close blocks
- nvim-ts-context-commentstring — Context-aware comments
- flash.nvim — Jump anywhere with minimal keystrokes
- yazi.nvim — File manager integration
- yanky.nvim — Enhanced yank/paste ring
- numb.nvim — Peek line numbers
- vim-illuminate — Highlight word under cursor
- mini.pairs — Auto-pair brackets
- mini.surround — Surround operations
- nvim-scissors — Snippet editor
- friendly-snippets — Snippet collection
- conform.nvim — Code formatting
- nvim-lint — Linting
- gitsigns.nvim — Git decorations & hunks
- diffview.nvim — Diff & merge tool
- resolved.nvim — Merge conflict resolver
- render-markdown.nvim — In-editor rendering
- obsidian.nvim — Obsidian vault integration
- markdown-toc.nvim — TOC generator
- persistence.nvim — Session management
- nvim-ufo — Modern folding
- todo-comments.nvim — TODO highlights
- guess-indent.nvim — Auto-detect indentation
- vim-kitty-navigator — Seamless pane navigation (
<C-h/j/k/l>)
| Setting | Value |
|---|---|
| Leader | Space |
| Tab width | 2 spaces |
| Line numbers | Relative |
| Completion | blink.cmp + Copilot |
| Formatter | conform.nvim (format on save disabled, manual) |
| LSP API | vim.lsp.config + vim.lsp.enable (nvim 0.11) |
| Session | <leader>qs restore · <leader>qS select · <leader>ql last |
| Key | Action |
|---|---|
<leader><space> |
Smart find files |
<leader>/ |
Grep |
<leader>gg |
Lazygit |
<leader>qs |
Restore session |
<leader>cr |
Rename symbol |
<C-h/j/k/l> |
Navigate panes (nvim + kitty) |
Personal configuration — feel free to use and modify as needed.