My personal NeoVim configuration built with NixVim. This is a straightforward setup that provides a solid development environment without any complex optimizations.
This is essentially a collection of my favorite NeoVim plugins and configurations managed declaratively with Nix. It's not trying to be the fastest or most minimal - just a comfortable setup for daily coding.
- Statusline: lualine.nvim for a clean statusline
- Notifications: noice.nvim for better message display
- Keybinding help: which-key.nvim to show available keybindings
- Autocompletion: nvim-cmp with LSP and snippet sources
- LSP: Full language server support via nvim-lspconfig
- Code quality: conform.nvim for formatting and nvim-lint for linting
- Git: gitsigns.nvim for git signs and diffview.nvim for diffing
- Terminal: toggleterm.nvim for terminal management
Run this configuration with:
nix run github:devtimnbr/vimhouseOr if you've cloned it locally:
nix run .The leader key is set to Space. Here are the main keybindings:
| Keybinding | Description |
|---|---|
<leader>r |
Rename word under cursor |
<leader>uw |
Toggle word wrap |
<leader>cr |
Copy relative path |
<S-h>/<S-l> |
Previous/Next buffer |
<leader>bd |
Delete buffer |
<leader>b |
New buffer |
<leader>x |
Close buffer |
<leader>B |
New terminal in a buffer |
<leader>T |
New terminal in a tab |
<C-h/j/k/l> |
Navigate between windows |
<leader>gg |
Open lazygit |
<leader>gd |
Open git diff |
nvim/
├── autocmd.nix
├── default.nix
├── filetype.nix
├── keymap.nix
├── options.nix
└── plugins/
├── git/
├── lsp/
└── ...
default.nix: Main configuration entry pointoptions.nix: General NeoVim settingskeymap.nix: Global keybindingsautocmd.nix: Auto commandsfiletype.nix: File-specific settingsplugins/: Plugin configurations organized by category
This is a personal configuration that works for me. It might not be optimized for your workflow or preferences. Feel free to fork and adjust it to your needs.