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
key | Descpription |
---|---|
j | left |
k | down |
l | up |
; | 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
key | Description |
---|---|
<leader>db | toggle breakpoint |
<leader>dc | continue |
<leader>de | eval |
<leader>di | step into |
<leader>do | step over |
<leader>du | DAP UI |
neotest
key | Description |
---|---|
<leader>tf | execute files tests |
<leader>tn | execute nearest test |
<leader>tN | debug nearest test |
<leader>ts | stop neotest |
buffer switching
key | Description |
---|---|
F1 | next buffer (cycles) |
F2 | previous buffer (cycles) |
formatting
key | Description |
---|---|
F4 | format this file |
telescope
key | Description |
---|---|
<leader>ff | find files |
<leader>fg | live ripgrep |
<leader>fh | help for functions etc |
<leader>fp | find projects |
<leader>fb | file browser |
<leader>b | buffer browser |
<leader>ld | find LSP type definition |
<leader>lw | find LSP symbol |
git
key | Description |
---|---|
<leader>gq | show commits |
<leader>gw | show commits in branch |
<leader>gb | show branches |
<leader>gb | git blame |
<leader>gs | show git status |
<leader>gd | Neogit diff |
<leader>gn | neogit |
<leader>gh | Github cli |
project telescope
normal mode | insert mode | ||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
cmp
Note, these require the cmp list view to be open to do anything!
key | Description |
---|---|
<C-b> | scroll docs up |
<C-f> | scroll docs down |
<C-e> | cancel cmp |
Enter | write selected suggestion (does nothing if not selected) |
Tab | scroll down through suggestion list |
Shift + Tab | scroll up through suggestion list |
LSP
key | Description |
---|---|
<leader>ca | go to definition |
<leader>cA | go to declaration |
<leader>cs | find references |
<leader>cd | go to type definition |
<leader>cf | go to implementation |
<leader>cq | fix code action |
<leader>cQ | refactor code action |
<leader>cw | workspace symbol |
<leader>ce | hover |
<leader>cr | rename |
<leader>ct | show errors and warnings |
<leader>cp | go to previous diagnostic |
<leader>cn | go to next diagnostic |
<leader>ccr | restart LSP |
<leader>cld | line diagnostic toggle |
Flash
key | Description |
---|---|
s | followed by 2 other characters and the marker to jump |
Dashboard
only available on dashboard
key | Description |
---|---|
f | file |
e | new file |
p | find project |
r | recently used files |
t | find text |
c | open yazi |
q | quit |
Treesitter specials
used to interact with treesitter defined objects.
key | Description |
---|---|
dif | Delete the content of a function |
daf | Delete the entire function |
dic | Delete the content of a class/struct |
dac | Delete 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