A Neovim configuration made with nvf
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:DashieTM/DashVim
.
Note: If you wish to try DashVim out, you might want test the minimal configuration first. -> nix run github:DashieTM/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>da | run with args |
<leader>db | toggle breakpoint |
<leader>dB | breakpoint condition |
<leader>dC | run to cursoor |
<leader>dc | continue |
<leader>de | eval |
<leader>dg | go to line |
<leader>di | step into |
<leader>k | down |
<leader>l | up |
<leader>; | run last |
<leader>dO | step over |
<leader>do | step out |
<leader>dp | pause |
<leader>dr | toggle repl |
<leader>ds | session |
<leader>dt | terminate |
<leader>du | DAP UI |
<leader>dw | widgets |
neotest
key | Description |
---|---|
<leader>tt | execute all tests |
<leader>tT | execute nearest test |
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 |
telescope git
key | Description |
---|---|
<leader>gq | show commits |
<leader>gw | show commits with diff |
<leader>gb | show branches |
<leader>gr | show git status |
<leader>ga | show git stash |
<leader>ge | git file tree |
project telescope
normal mode | insert mode | ||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
toggletrouble
key | Description |
---|---|
<leader>t | show errors and warnings |
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 | signature help |
<leader>ce | hover |
<leader>cr | rename |
snippets
These require you to be inside a snippet!
key | Description |
---|---|
<C-j> | jump to next entry |
<C-k> | jump to previous entry |
Leap
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 config |
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 |
Thanks to:
- raf and friends for nvf :)
- Nix-Artwork for the Nix/NixOS logo (Tim Cuthbertson (@timbertson))
DashVim configuration
programs.dashvim.enableNvfDefaultKeybinds
Nvf has a ton of default keybinds, this options re-enables them.
Type: boolean
Default:
false
Example:
true
programs.dashvim.additionalConfig
Nvf configuration to be added to DashVim.
Type: attribute set of anything
Default:
{ }
programs.dashvim.additionalLuaConfigFiles
A list of lua files to be added to DashVim
Type: list of absolute path
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.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.dashboardAscii
The Ascii picture for dashboard.nvim.
Type: list of string
Default:
[
" _______ ___ _______. __ __ __ _______ "
"| \\ / \\ / || | | | | | | ____|"
"| .--. | / ^ \\ | (----`| |__| | | | | |__ "
"| | | | / /_\\ \\ \\ \\ | __ | | | | __| "
"| '--' | / _____ \\ .----) | | | | | | | | |____ "
"|_______/ /__/ \\__\\ |_______/ |__| |__| |__| |_______|"
" "
]
Example:
[
"yourpicture"
]
programs.dashvim.formatters
Config for conform
Type: attribute set of anything
Default:
{
css = [
"prettierd"
"prettier"
];
fsharp = [
"fantomas"
];
html = [
"prettierd"
"prettier"
];
htmlangular = [
"prettierd"
"prettier"
];
javascript = [
"prettierd"
"prettier"
];
javascriptreact = [
"prettierd"
"prettier"
];
json = [
"prettierd"
"prettier"
];
lua = [
"stylua"
];
markdown = [
"prettierd"
"prettier"
];
nix = [
"alejandra"
];
php = [
"prettierd"
"prettier"
];
python = [
"black"
];
scss = [
"prettierd"
"prettier"
];
typescript = [
"prettierd"
"prettier"
];
typescriptreact = [
"prettierd"
"prettier"
];
yaml = [
"yamllint"
"yamlfmt"
];
}
Example:
{ }
programs.dashvim.instantUsername
Username for instant.nvim
Type: string
Default:
"DashVim"
Example:
"yourUserName"
programs.dashvim.lsp.additionalConfig
Nvf lsp configuration to be added to DashVim.
Type: attribute set of anything
Default:
{ }
programs.dashvim.lsp.lspServers
Nvf LSP config -> vim.languages
Type: attribute set of anything
Default:
{
assembly = {
enable = true;
lsp = {
enable = true;
};
};
bash = {
enable = true;
lsp = {
enable = true;
};
};
clang = {
enable = true;
lsp = {
enable = true;
};
};
csharp = {
enable = true;
lsp = {
enable = true;
};
};
css = {
enable = true;
lsp = {
enable = true;
};
};
dart = {
enable = true;
lsp = {
enable = true;
};
};
elixir = {
enable = true;
lsp = {
enable = true;
};
};
enableDAP = true;
enableExtraDiagnostics = true;
enableFormat = true;
enableTreesitter = true;
fsharp = {
enable = true;
lsp = {
enable = true;
};
};
gleam = {
enable = true;
lsp = {
enable = true;
};
};
go = {
enable = true;
lsp = {
enable = true;
};
};
haskell = {
enable = true;
lsp = {
enable = true;
};
};
html = {
enable = true;
};
java = {
enable = true;
lsp = {
enable = true;
};
};
julia = {
enable = true;
lsp = {
enable = true;
};
};
kotlin = {
enable = true;
lsp = {
enable = true;
};
};
lua = {
enable = true;
lsp = {
enable = true;
};
};
markdown = {
enable = true;
lsp = {
enable = true;
};
};
nix = {
enable = true;
lsp = {
enable = true;
};
};
php = {
enable = true;
lsp = {
enable = true;
};
};
python = {
enable = true;
lsp = {
enable = true;
};
};
ruby = {
enable = true;
lsp = {
enable = true;
};
};
rust = {
crates = {
enable = true;
};
enable = true;
lsp = {
enable = true;
};
};
sql = {
enable = true;
lsp = {
enable = true;
};
};
svelte = {
enable = true;
lsp = {
enable = true;
};
};
tailwind = {
enable = true;
lsp = {
enable = true;
};
};
terraform = {
enable = true;
lsp = {
enable = true;
};
};
ts = {
enable = true;
lsp = {
enable = false;
};
};
typst = {
enable = true;
lsp = {
enable = true;
};
};
vala = {
enable = true;
lsp = {
enable = true;
};
};
wgsl = {
enable = true;
lsp = {
enable = true;
};
};
yaml = {
enable = true;
lsp = {
enable = true;
};
};
zig = {
enable = true;
lsp = {
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 additionalConfig.
Type: boolean
Default:
true
Example:
false
programs.dashvim.useDefaultCmpConfig
Enables default cmp config
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