Abhay's standalone Nixvim config
Find a file
2026-08-18 04:05:42 +00:00
modules/neovim feat: added markdown preview plugin 2026-08-18 04:05:42 +00:00
flake.lock init: standalone nixvim config 2026-08-15 12:06:15 +05:30
flake.nix fix: enable nixvim by default in homeModules/nixosModules wrappers 2026-08-15 13:49:25 +05:30
README.md feat: upgrade LSP stack to modern tools 2026-08-15 14:19:39 +05:30

nixvim-config

My personal Neovim config, packaged via nixvim.

Canonical source — the infra flake imports this repo. Edit here, push, every machine gets the update.

Keybindings

Key Action
<leader>ff Format buffer (conform)
<leader>sf Find files (mini.pick)
<leader>sb Find buffers
<leader>sh Help pages
<leader>sg Live grep
<leader>sw Grep word under cursor
<leader>sr Resume picker
<leader>y / <leader>p Yank/paste to system clipboard
gd / gr / gi / gt Go to definition / references / implementation / type
<leader>rn Rename symbol
<leader>ca Code action
<leader>di Diagnostic float
J / K (visual) Move selected lines up/down

Plugins

  • blink-cmp — autocompletion (LSP, path, snippets, buffer)
  • conform.nvim — auto-formatting (alejandra, stylua, prettier, ruff, rustfmt, gofumpt, dotnet-format)
  • lualine — statusline (kanagawa theme)
  • mini.pick — fuzzy finding (files, buffers, grep, help)
  • mini.extra — LSP pickers (symbols, diagnostics, definitions, references)
  • kanagawa — colorscheme
  • LSP — nixd, lua_ls, vtsls, rust-analyzer, gopls, basedpyright, ruff, html, cssls, markdown_oxide, roslyn_ls

How to use

WSL (home-manager)

# flake.nix
inputs.nixvim-config.url = "https://git.iamabhay.fyi/abhay/nixvim-config.git";
# home.nix
{ inputs, ... }: {
  imports = [ inputs.nixvim-config.homeModules.default ];
}

Any NixOS machine

{ inputs, ... }: {
  imports = [ inputs.nixvim-config.nixosModules.default ];
}

Try without installing

nix run https://git.iamabhay.fyi/abhay/nixvim-config.git

File structure

modules/neovim/
├── default.nix    # imports everything
├── options.nix    # base vim opts, theme, disable nixpkgs version check
├── keymaps.nix    # all keybindings
└── plugins/
    ├── lsp.nix    # LSP servers (nixd, lua_ls, vtsls, rust-analyzer, gopls, basedpyright, ruff, html, cssls, markdown_oxide, roslyn_ls)
    ├── conform.nix # formatters
    ├── blink.nix  # autocompletion
    ├── mini.nix   # mini.pick config
    └── lualine.nix # statusline