Skip to content

Nixvim

This module provides some defaults to quickly set up Nixvim with some plugins.

View the synix Home Manager module on Forgejo.

Config

Here is an example configuration:

# flake.nix
inputs = {
  nixvim.url = "github:nix-community/nixvim";
  nixvim.inputs.nixpkgs.follows = "nixpkgs";
};
# home/YOU/default.nix
{ inputs, lib, config, pkgs, ... }:

{
  imports = [
    inputs.synix.homeModules.stylix # This module works great with stylix
    inputs.synix.homeMmodules.nixvim # You need to import this module
  ];

  programs.nixvim = {
    enable = true;
    #colorschemes.SCHEME.enable = true; # If you do not use the stylix module, set a scheme manually
    # This module provides defaults for the following plugins.
    # They are all enabled by default.
    plugins = {
      cmp.enable = true; # Auto completion
      dap.enable = true; # Debugging 
      lsp.enable = true; # Language server
      lualine.enable = true; # Statusline
      luasnip.enable = true; # Coding snippets
      markdown-preview.enable = true; # Markdown preview in Browser
      telescope.enable = true; # Fuzzy finder
      treesitter.enable = true; # Syntax highlighting
      trouble.enable = true; # Diagnostic messages
    };
  };

  stylix = {
    enable = true;
    scheme = "dracula"; # This automatically sets the nixvim scheme as well
  };
}

Keymaps

This module sets some keymaps. Here are some important ones:

<leader> defaults to the space key

key action
<leader>pv ex command (file explorer)
<leader>s search and replace
<C-a> select whole buffer
<leader>ss toggle spell checking
<leader>se switch to english spell checking
<leader>sg switch to german spell checking
z= correction suggestions for a misspelled word
zg add word to spell list
<C-CR> confirm selection in completion menu
<Tab> select next item in completion menu
<S-Tab> select previous item in completion menu
gd go to definition
K display more information about word under cursor
<leader>bl list buffers
<C-S-J> next buffer
<C-S-K> previous buffer
<leader>fb or <C-e> open file browser
<leader>ff find files by name
<leader>fg or <C-f> find files containing string
<leader>xd toggle diagnostics
<leader>xq toggle quick fix list
<leader>m run make command
<leader>xl toggle loclist list
<leader>xx toggle diagnostics list
<leader>xq toggle quifick list
<C-A-J> previous quickfix item
<C-A-K> next quickfix item
<leader>ca apply code action

See keymaps.nix and plugins for more details.

These commands do not have keymaps yet but might be useful anyway:

command action
:MarkdownPreview live render the current markdown buffer