Skip to content

dileep-kishore/neovim

Repository files navigation


A Neovim configuration as a Nix flake ❄️ template

This flake uses nixvim to configure neovim in a declarative manner. Since this configuration uses nixvim, this means that it is entirely written in Nix with some custom Lua sprinkled in here and there.

Running the flake

To run this nix flake simply run the following command

nix run github:dileep-kishore/neovim

Note

You will need to install the nix package manager before you can run the previous command

Or you can use home-manager to add this flake to your setup like so:

{
    inputs.neovim = {
      url = "github:dileep-kishore/neovim";
      inputs.nixpkgs.follows = "nixpkgs";
    };
}

And then install it by adding inputs.neovim.packages.${system}.default to your packages

Gallery

Dashboard
dashboard
Editor
editor
Autocompletions
autocompletions
Git
git
Telescope
telescope

Features

  • Works out of the box without needing to install any external dependencies.
    • This includes lsp servers, linters, formatters or other packages.
  • A lot of the default options and autocmds that you would find on a distribution like LunarVim are configured out of the box
  • Treesitter syntax highlighting is enabled and rose-pine theme is set as the default
  • Uses custom statusline configured using lualine.nvim
  • Custom tabline configured using tabby.nvim
  • Includes neogit and lazygit.nvim for working with git
  • Lsp servers, linters and formatters for configured for Python, Nix, Lua, Javascript, Typescript, Julia, Bash, Rust, Go and many more
  • Debugging is supported through the Debugging adapter protocol (DAP) plugin.
    • This is currently only setup to work with Python
  • Completions are enabled through nvim-cmp
  • Snippets are set up using luasnip and friendly-snippets
  • Telescope for fuzzy file finding and searching
  • Better file navigation using Oil.nvim and Arrow.nvim
  • AI capabilities are enabled through Avante.nvim, ChatGPT.nvim, copilot.lua and CopilotChat.nvim
  • Indent lines are enabled using mini.indentscope
  • The dashboard is set up using alpha-nvim
  • And many other features! Check out default.nix and the plugins/ folder

Manual Installation

The julia language server is not currently supported by nixpkgs, so you will need to install it manually.

julia --project=~/.julia/environments/nvim-lspconfig -e 'using Pkg; Pkg.add("LanguageServer")'