Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Logo of dashvim

Installation

Can either be done as a NixOS or home-manager module.

programs.dashvim = {
    enable = true;
    colorscheme = config.conf.colorscheme;
    # other options
};

Try before Installation

nix run inside the directory, or nix run github:Xetibo/DashVim.

Note: If you wish to try DashVim out, you might want test the minimal configuration first. -> nix run github:Xetibo/DashVim#minimal.

Keys

Could potentially be outdated.

Space as leader

Motion

keyDescpription
jleft
kdown
lup
;right
<A-j>window left
<A-k>window up
<A-l>window down
<A-;>window right
<A-f>open file tree (root
<A-F>open file tree (cwd)

Debugging

keyDescription
<leader>dbtoggle breakpoint
<leader>dccontinue
<leader>deeval
<leader>distep into
<leader>dostep over
<leader>duDAP UI

neotest

keyDescription
<leader>tfexecute files tests
<leader>tnexecute nearest test
<leader>tNdebug nearest test
<leader>tsstop neotest

buffer switching

keyDescription
F1next buffer (cycles)
F2previous buffer (cycles)

formatting

keyDescription
F4format this file

telescope

keyDescription
<leader>fffind files
<leader>fglive ripgrep
<leader>fhhelp for functions etc
<leader>fpfind projects
<leader>fbfile browser
<leader>bbuffer browser
<leader>ldfind LSP type definition
<leader>lwfind LSP symbol

git

keyDescription
<leader>gqshow commits
<leader>gwshow commits in branch
<leader>gbshow branches
<leader>gbgit blame
<leader>gsshow git status
<leader>gdNeogit diff
<leader>gnneogit
<leader>ghGithub cli

project telescope

normal mode insert mode
keyDescription
ddelete project
rrename project
ccreate project
ssearch files in project
bbrowse files in project
wchange directory to project
Rrecently opened files in project
ffind file within project
keyDescription
<C-d>delete project
<C-v>rename project
<C-a>create project
<C-s>search files in project
<C-b>browse files in project
<C-l>change directory to project
<C-r>recently opened files in project
<C-f>find file within project

cmp

Note, these require the cmp list view to be open to do anything!

keyDescription
<C-b>scroll docs up
<C-f>scroll docs down
<C-e>cancel cmp
Enterwrite selected suggestion (does nothing if not selected)
Tabscroll down through suggestion list
Shift + Tabscroll up through suggestion list

LSP

keyDescription
<leader>cago to definition
<leader>cAgo to declaration
<leader>csfind references
<leader>cdgo to type definition
<leader>cfgo to implementation
<leader>cqfix code action
<leader>cQrefactor code action
<leader>cwworkspace symbol
<leader>cehover
<leader>crrename
<leader>ctshow errors and warnings
<leader>cpgo to previous diagnostic
<leader>cngo to next diagnostic
<leader>ccrrestart LSP
<leader>cldline diagnostic toggle

Flash

keyDescription
sfollowed by 2 other characters and the marker to jump

Dashboard

only available on dashboard

keyDescription
ffile
enew file
pfind project
rrecently used files
tfind text
copen yazi
qquit

Treesitter specials

used to interact with treesitter defined objects.

keyDescription
difDelete the content of a function
dafDelete the entire function
dicDelete the content of a class/struct
dacDelete the entire class/struct

DashVim configuration

programs.dashvim.additionalConfig

NixVim configuration to be added to DashVim.

Type: attribute set of anything

Default: { }

programs.dashvim.agent.enable

Enables codecompanion

Type: boolean

Default: false

Example: true

programs.dashvim.agent.config

Config for codecompanion

Type: attribute set of anything

Default: { }

Example: { }

programs.dashvim.agent.key

Key for your agent. Please don’t use a plain text key, try sops-nix or agenix instead.

Type: null or anything

Default: null

Example: null

programs.dashvim.agent.variant

The agent type, see codecompanion for details.

Type: string

Default: "copilot"

Example: "openai"

programs.dashvim.alphaPicture

The Ascii picture for alpha.nvim.

Type: list of string

Default:

[
  " _______       ___           _______. __    __   __   _______ "
  "|       \\     /   \\         /       ||  |  |  | |  | |   ____|"
  "|  .--.  |   /  ^  \\       |   (----`|  |__|  | |  | |  |__   "
  "|  |  |  |  /  /_\\  \\       \\   \\    |   __   | |  | |   __|  "
  "|  '--'  | /  _____  \\  .----)   |   |  |  |  | |  | |  |____ "
  "|_______/ /__/     \\__\\ |_______/    |__|  |__| |__| |_______|"
  "        ⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⢤⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀          "
  "        ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⠪⣍⣒⠒⠦⠤⠤⠤⠄⠠⡜⡐⠁⠪⡢⡀⠀⠀⠀⠀⠀⠀⠀⠀⣀⠤⢄⠀⠀⠀⠀⠀⠀⠀          "
  "        ⠀⠀⠀⠈⠛⠯⣉⠁⣐⣂⠐⠮⠥⠟⣓⣲⣾⣿⣿⣿⣶⡃⠀⠀⠈⢞⢆⠀⠀⠀⠀⠀⠀⡰⢁⠂⠄⣇⠀⠀⠀⠀⠀⠀          "
  "        ⠀⠀⠀⠀⣠⠤⠤⠭⠷⠎⡡⠔⠒⠘⠀⢹⣿⣿⣿⣿⣿⠀⠈⠀⠀⠀⢢⢣⠀⠀⠀⠀⢀⡇⠈⠀⢰⢰⠀⠀⠀⠀⠀⠀          "
  "        ⠀⠀⠀⢸⢰⠀⠀⠀⡩⢋⣀⣤⣤⣤⣤⣤⣿⣿⠟⠿⣿⡀⠀⠀⠀⠀⠀⠆⢳⠀⠀⠀⢸⠀⠂⠀⠀⡈⡆⠀⠀⠀⠀⠀          "
  "        ⠀⠀⠀⠀⢣⢂⠀⠮⡪⠛⠉⢋⠝⠻⢿⢿⡿⢁⠔⢋⣸⠇⠀⠀⠀⠀⠀⡘⣆⢣⠀⠀⡼⠀⠀⠀⠀⡇⣇⠀⠀⠀⠀⠀          "
  "        ⠀⠀⠀⠀⠀⡣⢲⡊⠀⠀⠀⠀⠀⡴⠃⣼⠡⢪⠔⠋⠀⠀⠀⢀⠀⠀⠀⢸⣿⡄⢆⠀⡇⠀⠀⠀⠀⠁⢸⠀⠀⠀⠀⠀          "
  "        ⠀⠀⠀⠀⢰⢡⡇⠀⠀⢀⠔⠠⠊⣰⠞⡇⢠⠃⠀⣠⣶⣿⣷⣷⣷⠄⠀⠈⡟⣷⡸⡄⡇⠀⠀⠀⠀⠀⢸⠀⠀⠀⠀⠀          "
  "        ⠀⠀⠀⠀⡇⣾⠀⣀⠔⣁⣤⣦⢺⣿⡆⡆⡃⠀⢨⠃⢸⣿⣿⣿⠏⠀⠠⢀⢠⣿⡇⣧⡇⠀⠀⠀⠀⠀⢸⣆⢔⡲⡆⠀          "
  "        ⠀⠀⣠⠞⠼⠧⢙⡒⣾⣿⣿⡷⡘⣟⣷⣜⡃⠀⡼⠀⠀⠷⠗⠋⠀⠀⠀⢀⡟⣿⣿⢀⠓⠀⠀⠀⠀⠀⢸⢋⠊⠀⡇⠀          "
  "        ⠘⠛⠒⠒⠉⠉⠁⡇⣿⣽⣿⡇⠈⢹⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡀⣠⠟⠀⣷⣿⣇⠱⡀⠀⠀⠀⡄⢀⠃⠀⡄⡇⠀          "
  "        ⠀⠀⠀⠀⠀⠀⠀⡇⢸⣏⢀⣧⠀⠈⠆⠀⠀⠀⠀⠀⠀⠀⠀⡠⢊⡴⡟⠀⡼⢁⢸⡙⣠⠁⠀⠀⠀⢇⠆⠀⢀⢳⡇⠀          "
  "        ⠀⠀⠀⠀⠀⠀⠀⢳⢀⣵⢸⣯⣷⣤⣀⠀⠀⠀⠀⠀⢀⣐⠮⠔⡎⠘⠀⠈⢀⢮⣿⣷⠁⠇⠠⠀⢰⠎⠀⠀⡘⣸⠀⠀          "
  "        ⠀⠀⠀⠀⠀⠀⢀⠎⢬⢘⣯⠛⢻⠏⣿⣿⣶⣶⡶⠋⠉⠀⠀⢸⠀⠀⡔⠀⣪⣿⣿⢻⠀⠸⠈⡇⠛⠀⠠⢀⢃⡇⠀⠀          "
  "        ⠀⠀⠀⠀⠀⠈⡹⡡⣪⡏⠛⠀⠀⢠⡟⢻⣿⣿⡇⠀⠀⠀⠀⢼⡆⠠⡇⢰⣿⣿⣿⣻⡄⠀⡆⠁⠀⣠⠃⠌⠼⠤⠤⡀          "
  "        ⠀⠀⠀⣀⡠⢞⣳⣽⢸⡇⠀⡇⠀⠸⠀⣼⣿⣿⡇⠀⠀⠀⠀⠈⡇⣰⠃⣶⡍⣼⣿⣏⠃⠀⠁⢠⠊⣀⣜⠤⠐⢂⢆⠇          "
  "        ⠀⠀⠈⠉⠉⠁⠀⢇⢸⡟⠀⡇⠀⡇⢸⢷⣹⣿⡇⠀⠀⠀⠀⠀⢳⡽⠃⡞⣇⣿⣧⣿⠀⠀⢸⠃⢠⠃⠀⢀⠤⢢⠞⠀          "
  "        ⠀⠀⠀⠀⠀⠀⠀⢸⡀⡇⠀⠁⢠⠁⣿⠈⣿⣿⠇⠀⠀⠀⠀⠀⠀⠁⡆⡇⣾⠿⣹⣿⠀⠀⠃⡰⠃⡰⢔⣡⠞⠁⠀⠀          "
  "        ⠀⠀⠀⠀⠀⠀⠀⠀⢇⢠⠀⠂⡌⠀⢽⠁⣟⡟⠀⠀⠀⠀⠀⠀⠀⠀⣇⢶⢹⣤⣿⠇⠀⣀⣈⠝⡱⠒⠉⠀⠀⠀⠀⠀          "
  "        ⠀⠀⠀⠀⠀⠀⠀⠀⠈⣎⡄⠀⡷⠀⢸⠀⢹⠇⠀⠀⠀⠀⠀⠀⠀⠀⠫⣼⣾⣿⢋⠤⠤⠥⢆⡞⠀⠀⠀⠀⠀⠀⠀⠀          "
  "        ⠀⠀⠀⠀⠀⠀⠀⠀⢀⢫⣡⢸⠎⢃⢘⠀⢈⡄⠀⠀⠀⠀⠀⠀⠀⠀⢀⡽⣽⢀⡋⠉⠑⠉⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀          "
  "        ⠀⠀⠀⠀⠀⠀⠀⠀⠘⠉⠳⡯⣇⢆⠻⣆⠈⣤⠀⠀⠀⠀⣀⡀⠤⢚⡨⠷⣝⠗⠑⢄⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀          "
  "        ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠫⣗⠳⡜⠵⠀⡍⡥⠤⠤⠤⠄⠒⠉⠀⠀⠀⠉⠉⠉⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀          "
  "        ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠙⠫⡆⣇⠇⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀          "
  "        ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢰⡙⡰⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀          "
  "        ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣦⠞⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀          "
]

Example:

[
  "yourpicture"
]

programs.dashvim.colorscheme

Base16 colorscheme. Can be an attribute set with base00 to base0F, a string that leads to a yaml file in base16-schemes path, or a path to a custom yaml file.

Type: string or (attribute set) or absolute path

Default: "catppuccin-mocha"

Example:

{
  base00 = "1A1B26";
  base01 = "191a25";
  base02 = "2F3549";
  base03 = "444B6A";
  base04 = "787C99";
  base05 = "A9B1D6";
  base06 = "CBCCD1";
  base07 = "D5D6DB";
  base08 = "C0CAF5";
  base09 = "A9B1D7";
  base0A = "0DB9D7";
  base0B = "9ECE6A";
  base0C = "B4F9F8";
  base0D = "366fea";
  base0E = "BB9AF7";
  base0F = "F7768E";
}

programs.dashvim.instantUsername

Username for instant.nvim

Type: string

Default: "DashVim"

Example: "yourUserName"

programs.dashvim.lsp.lspServers

LspServers to enable.

Type: attribute set of anything

Default:

{
  angularls = {
    cmd = [
      "ngserver"
    ];
    enable = false;
    package = null;
  };
  bashls = {
    enable = true;
  };
  clangd = {
    enable = true;
  };
  cmake = {
    enable = true;
  };
  cssls = {
    enable = true;
    filetypes = [
      "css"
      "scss"
    ];
  };
  dartls = {
    enable = true;
  };
  dhall_lsp_server = {
    enable = true;
  };
  elixirls = {
    enable = true;
  };
  elmls = {
    enable = true;
  };
  eslint = {
    enable = true;
  };
  fsautocomplete = {
    cmd = [
      "fsautocomplete"
      "--adaptive-lsp-server-enabled"
      "--project-graph-enabled"
      "--use-fcs-transparent-compiler"
    ];
    enable = true;
    extraOptions = {
      init_options = {
        AutomaticWorkspaceInit = true;
      };
    };
    settings = {
      FSharp = {
        AutomaticWorkspaceInit = true;
        EnableReferenceCodeLens = true;
        ExternalAutocomplete = false;
        InterfaceStubGeneration = true;
        InterfaceStubGenerationMethodBody = "";
        InterfaceStubGenerationObjectIdentifier = "this";
        Linter = false;
        RecordStubGeneration = true;
        RecordStubGenerationBody = "";
        ResolveNamespaces = true;
        SimplifyNameAnalyzer = false;
        UnionCaseStubGeneration = true;
        UnionCaseStubGenerationBody = "";
        UnnecessaryParenthesesAnalyzer = false;
        UnusedDeclarationsAnalyzer = true;
        UnusedOpensAnalyzer = true;
        UseSdkScripts = true;
        excludeProjectDirectories = [
          ".git"
          "paket-files"
          ".fable"
          "packages"
          "node_modules"
          "tools"
        ];
        keywordsAutocomplete = true;
      };
    };
  };
  gdscript = {
    enable = true;
    package = null;
  };
  gleam = {
    enable = true;
  };
  gopls = {
    enable = true;
  };
  html = {
    enable = true;
  };
  htmx = {
    enable = true;
  };
  java_language_server = {
    enable = true;
  };
  jsonls = {
    enable = false;
  };
  julials = {
    enable = true;
    package = null;
  };
  kotlin_language_server = {
    enable = true;
  };
  ltex_plus = {
    enable = false;
    filetypes = [
      "typst"
      "markdown"
      "gitcommit"
      "tex"
      "latex"
      "org"
      "plaintext"
    ];
    package = null;
    settings = {
      ltex = {
        enabled = [
          "typst"
          "markdown"
          "gitcommit"
          "tex"
          "latex"
          "org"
          "plaintext"
        ];
      };
    };
  };
  lua_ls = {
    enable = true;
  };
  nixd = {
    enable = true;
    settings = {
      formatting = {
        command = [
          "alejandra"
        ];
      };
    };
  };
  nushell = {
    enable = true;
  };
  ocamllsp = {
    enable = true;
    package = null;
  };
  phpactor = {
    enable = true;
  };
  pyright = {
    enable = true;
  };
  ruby_lsp = {
    enable = true;
  };
  rust_analyzer = {
    enable = true;
    installCargo = false;
    installRustc = false;
  };
  sqls = {
    enable = true;
  };
  svelte = {
    enable = true;
  };
  tailwindcss = {
    enable = true;
  };
  taplo = {
    enable = true;
  };
  terraformls = {
    enable = true;
  };
  texlab = {
    enable = true;
  };
  tinymist = {
    enable = true;
  };
  vuels = {
    enable = true;
    package = null;
  };
  yamlls = {
    enable = true;
  };
  zls = {
    enable = true;
  };
}

Example: { }

programs.dashvim.lsp.special.useAngular

Whether to enable angular ls. Note this disables Html-ls and removes the typescript renaming function.

Type: boolean

Default: false

Example: true

programs.dashvim.lsp.useDefaultSpecialLspServers

These are LSP servers which are installed via plugins. For example rustaceanvim for rust. Disabling this will remove all special servers. You can install specific ones using the additional config.

Type: boolean

Default: true

Example: false

programs.dashvim.useDefaultCmpconfig

Enables Lsp config, conform and DAP.

Type: boolean

Default: true

Example: false

programs.dashvim.useDefaultKeybinds

Enables the default keybinds for DashVim. Keep in mind that regular keymaps from plugin defaults and Neovim are still active.

Type: boolean

Default: true

Example: false