My Neovim config using nixvim.
To start configuring, just add or modify the nix files in ./config.
If you add a new configuration file, remember to add it to the
config/default.nix file
-
colorscheme/: Theme configuration. Current one is paradise
-
- nvim-cmp: Completion plugin for nvim + emoji support
- copilot-cmp: Completion support for GitHub copilot
- lspkind: vscode-like pictograms for neovim lsp completion items
-
- luasnip: Snippet engine in lua
-
- treesitter-context: Show code context
- treesitter-textobject: Allow cool text manupulation thanks to TS
- treesitter: Parser generator tool to build a syntax tree of the current buffer
-
- alpha: Dashboard
- bufferline: VSCode like line for buffers
- noice: Better nvim UI
- nvim-notify: Notification manager
- telescope: Best plugin ever ?
-
- CopilotChat: Chat with copilot in nvim
- dap: Debug in nvim
- flash: Navigate in file with a few keystrokes
- grapple: Quickly switch between buffers (Harpoon replacement)
- hardtime: Learn vim motions, the hard way
- harpoon: Quickly switch between buffers
- illuminate: Highlight word under the cursor
- nvim-autopairs: Autopairs in nvim
- oil: Navigate in your working folder with a buffer
- ufo: Folding plugin
- undotree: Undo history visualizer
- whichkey: Popup to display keybindings
To test your configuration simply run the following command
nix run .
If you have nix installed, you can directly run my config from anywhere
You can try running mine with:
nix run 'github:elythh/nixvim'This nixvim flake will output a derivation that you can easily include
in either home.packages for home-manager, or
environment.systemPackages for NixOS. Or whatever happens with darwin?
You can add my nixvim configuration as an input to your NixOS configuration like:
{
inputs = {
nixvim.url = "github:elythh/nixvim";
};
}With the input added you can reference it directly.
{ inputs, system, ... }:
{
# NixOS
environment.systemPackages = [ inputs.nixvim.packages.${system}.default ];
# home-manager
home.packages = [ inputs.nixvim.packages.${system}.default ];
}The binary built by nixvim is already named as nvim so you can call it just
like you normally would.
Another method is to overlay your custom build over neovim from nixpkgs.
This method is less straight-forward but allows you to install neovim like
you normally would. With this method you would just install neovim in your
configuration (home.packges = with pkgs; [ neovim ]), but you replace
neovim in pkgs with your derivation from nixvim.
{
pkgs = import inputs.nixpkgs {
inherit system;
overlays = [
(final: prev: {
neovim = inputs.nixvim.packages.${system}.default;
})
];
}
}You can just straight up alias something like nix run 'github:elythh/nixvim' to nvim.
- yavko for the logo

