This is my fully customized Neovim configuration, built with Nix and the powerful Nixvim flake. It is meant to be reproducible, portable, and easy to extend without maintaining a separate Lua config per machine.
- Nixvim for Declarative Configuration: Leverage Nix expressions for a clean and maintainable Neovim setup with 100+ carefully configured plugins.
- AI-Powered Development: Integrated GitHub Copilot, Claude Code, Avante, and Blink completion for intelligent coding assistance.
- Modern Plugin Architecture: Modular plugin system with lazy loading and comprehensive language support for 20+ programming languages.
- Advanced Navigation: Multiple fuzzy finders (FZF-Lua, Snacks Picker) for quick file and symbol searching.
- Comprehensive Git Integration: Full Git workflow support with Gitsigns, Diffview, Git Conflict resolution, and worktree management.
- Debugging & Testing: Complete debugging setup with DAP and Neotest for multiple languages.
- Consistent Environments: Reproduce your Neovim setup on any system with Nix installed.
- Nix Package Manager: Ensure Nix is installed on your system. Follow the instructions at https://nixos.org/download.html.
Run the default standard profile directly:
nix run --extra-experimental-features 'nix-command flakes' github:khaneliman/khanelivimBuild and run from a local checkout:
git clone https://github.com/khaneliman/khanelivim.git
cd khanelivim
nix runInstall it from Home Manager via home.packages:
{
home.packages = [
khanelivim.packages.${pkgs.system}.default
];
}The generated docs are the canonical reference for profiles, options, and workflow details.
nix build .#docs-html
nix run .#docsStart here:
Using the Flakefor the supported ways to run, install, and customize this configKeymapsfor generated, UX-oriented keybinding pagesSelecting Profilesforminimal,basic,standard,full, anddebugOptions Referencefor thekhanelivim.*module surfaceProfile Matrixfor the evaluated differences between profilesLanguage Tooling Workflowsfor the runtime LSP and language-tooling model
# Update flake dependencies
nix flake update
# Check flake for issues
nix flake check
# Format/lint code
nix fmt
deadnix -e
statix fix .
# Enter development shell
nix develop
# Run Neovim
nix run