mirror of
https://github.com/fred-drake/neovim.git
synced 2026-06-05 14:59:28 -05:00
350 lines
7.7 KiB
Nix
350 lines
7.7 KiB
Nix
{
|
|
globals.mapleader = " ";
|
|
|
|
plugins.which-key = {
|
|
enable = true;
|
|
settings = {
|
|
spec = [
|
|
{
|
|
__unkeyed-1 = "<leader>g";
|
|
group = "Git";
|
|
}
|
|
{
|
|
__unkeyed-1 = "<leader><tab>";
|
|
group = "Tabs";
|
|
}
|
|
{
|
|
__unkeyed-1 = "<leader>f";
|
|
group = "File / Find";
|
|
}
|
|
{
|
|
__unkeyed-1 = "<leader>q";
|
|
group = "Quit / Session";
|
|
}
|
|
{
|
|
__unkeyed-1 = "<leader>s";
|
|
group = "Search";
|
|
}
|
|
{
|
|
__unkeyed-1 = "<leader>b";
|
|
group = "Buffer";
|
|
}
|
|
{
|
|
__unkeyed-1 = "<leader>o";
|
|
group = "SOPS";
|
|
icon = "";
|
|
}
|
|
{
|
|
__unkeyed-1 = "<leader>d";
|
|
group = "Debug";
|
|
icon = "";
|
|
}
|
|
{
|
|
__unkeyed-1 = "<leader>c";
|
|
group = "Code Actions";
|
|
icon = "";
|
|
}
|
|
{
|
|
__unkeyed-1 = "<leader>d/";
|
|
group = "Search";
|
|
icon = "";
|
|
}
|
|
{
|
|
__unkeyed-1 = "<leader>D";
|
|
group = "Database";
|
|
icon = "";
|
|
}
|
|
];
|
|
};
|
|
};
|
|
|
|
keymaps = [
|
|
# Normal mode
|
|
{
|
|
mode = "i";
|
|
key = "jk";
|
|
action = "<CMD>noh<CR><ESC>";
|
|
options = {desc = "Normal mode and clear highlight";};
|
|
}
|
|
{
|
|
mode = "i";
|
|
key = "<ESC>";
|
|
action = "<CMD>noh<CR><ESC>";
|
|
options = {desc = "Normal mode and clear highlight";};
|
|
}
|
|
{
|
|
mode = "n";
|
|
key = "<ESC>";
|
|
action = "<CMD>noh<CR><ESC>";
|
|
options = {desc = "Normal mode and clear highlight";};
|
|
}
|
|
|
|
# Add undo breakpoints
|
|
{
|
|
mode = "i";
|
|
key = ",";
|
|
action = ",<C-g>u";
|
|
options = {desc = "Undo breakpoint";};
|
|
}
|
|
{
|
|
mode = "i";
|
|
key = ".";
|
|
action = ".<C-g>u";
|
|
options = {desc = "Undo breakpoint";};
|
|
}
|
|
{
|
|
mode = "i";
|
|
key = ";";
|
|
action = ";<C-g>u";
|
|
options = {desc = "Undo breakpoint";};
|
|
}
|
|
|
|
{
|
|
mode = "n";
|
|
key = "<leader>e";
|
|
action = "<CMD>Neotree toggle<CR>";
|
|
options = {desc = "Toggle tree view";};
|
|
}
|
|
|
|
# Database
|
|
{
|
|
mode = "n";
|
|
key = "<leader>Du";
|
|
action = "<CMD>DBUI<CR>";
|
|
options = {desc = "Show Database UI";};
|
|
}
|
|
|
|
# LSP Actions
|
|
{
|
|
mode = "n";
|
|
key = "gd";
|
|
action = "<CMD>FzfLua lsp_definitions jump_to_single_result=true ignore_current_line=true<CR>";
|
|
options = {desc = "Goto Definition";};
|
|
}
|
|
{
|
|
mode = "n";
|
|
key = "gr";
|
|
action = "<CMD>FzfLua lsp_references jump_to_single_result=true ignore_current_line=true<CR>";
|
|
options = {desc = "References";};
|
|
}
|
|
{
|
|
mode = "n";
|
|
key = "gI";
|
|
action = "<CMD>FzfLua lsp_implementations jump_to_single_result=true ignore_current_line=true<CR>";
|
|
options = {desc = "Goto Implementation";};
|
|
}
|
|
{
|
|
mode = "n";
|
|
key = "gy";
|
|
action = "<CMD>FzfLua lsp_typedefs jump_to_single_result=true ignore_current_line=true<CR>";
|
|
options = {desc = "Goto T[y]pe Definition";};
|
|
}
|
|
{
|
|
mode = "n";
|
|
key = "<leader>cd";
|
|
action = "<CMD>lua vim.diagnostic.open_float()<CR>";
|
|
options = {desc = "Popup Diagnostics";};
|
|
}
|
|
{
|
|
mode = "n";
|
|
key = "<leader>cD";
|
|
action = "<CMD>Trouble diagnostics toggle<CR>";
|
|
options = {desc = "List All Diagnostics";};
|
|
}
|
|
|
|
# SOPS
|
|
{
|
|
mode = "n";
|
|
key = "<leader>od";
|
|
action = "<CMD>!sops -d -i %<CR><CR>";
|
|
options = {desc = "Decrypt SOPS File";};
|
|
}
|
|
{
|
|
mode = "n";
|
|
key = "<leader>oe";
|
|
action = "<CMD>!sops -e -i %<CR><CR>";
|
|
options = {desc = "Encrypt SOPS File";};
|
|
}
|
|
|
|
# Git
|
|
{
|
|
mode = "n";
|
|
key = "<leader>gg";
|
|
action = "<CMD>LazyGit<CR>";
|
|
options = {desc = "LazyGit";};
|
|
}
|
|
|
|
# Windows
|
|
{
|
|
key = "<C-h>";
|
|
action = "<CMD>wincmd h<CR>";
|
|
options = {desc = "Navigate Window Left";};
|
|
}
|
|
{
|
|
key = "<C-j>";
|
|
action = "<CMD>wincmd j<CR>";
|
|
options = {desc = "Navigate Window Down";};
|
|
}
|
|
{
|
|
key = "<C-k>";
|
|
action = "<CMD>wincmd k<CR>";
|
|
options = {desc = "Navigate Window Up";};
|
|
}
|
|
{
|
|
key = "<C-l>";
|
|
action = "<CMD>wincmd l<CR>";
|
|
options = {desc = "Navigate Window Right";};
|
|
}
|
|
{
|
|
mode = "n";
|
|
key = "<leader>w";
|
|
action = "<c-w>";
|
|
options = {desc = "Windows";};
|
|
}
|
|
{
|
|
mode = "n";
|
|
key = "<leader>-";
|
|
action = "<C-W>s";
|
|
options = {desc = "Split Window Below";};
|
|
}
|
|
{
|
|
mode = "n";
|
|
key = "<leader>|";
|
|
action = "<C-W>v";
|
|
options = {desc = "Split Window Right";};
|
|
}
|
|
{
|
|
mode = "n";
|
|
key = "<leader>wd";
|
|
action = "<C-W>c";
|
|
options = {desc = "Delete Window";};
|
|
}
|
|
|
|
# Tabs
|
|
{
|
|
mode = "n";
|
|
key = "<leader><tab>l";
|
|
action = "<CMD>tablast<CR>";
|
|
options = {desc = "Last Tab";};
|
|
}
|
|
{
|
|
mode = "n";
|
|
key = "<leader><tab>o";
|
|
action = "<CMD>tabonly<CR>";
|
|
options = {desc = "Close Other Tabs";};
|
|
}
|
|
{
|
|
mode = "n";
|
|
key = "<leader><tab>f";
|
|
action = "<CMD>tabfirst<CR>";
|
|
options = {desc = "First Tab";};
|
|
}
|
|
{
|
|
mode = "n";
|
|
key = "<leader><tab><tab>";
|
|
action = "<CMD>tabnew<CR>";
|
|
options = {desc = "New Tab";};
|
|
}
|
|
{
|
|
mode = "n";
|
|
key = "<leader><tab>]";
|
|
action = "<CMD>tabnext<CR>";
|
|
options = {desc = "Next Tab";};
|
|
}
|
|
{
|
|
mode = "n";
|
|
key = "<leader><tab>d";
|
|
action = "<CMD>tabclose<CR>";
|
|
options = {desc = "Close Tab";};
|
|
}
|
|
{
|
|
mode = "n";
|
|
key = "<leader><tab>[";
|
|
action = "<CMD>tabprevious<CR>";
|
|
options = {desc = "Previous Tab";};
|
|
}
|
|
|
|
# Buffer
|
|
{
|
|
mode = "n";
|
|
key = "<S-h>";
|
|
action = "<CMD>bprevious<CR>";
|
|
options = {desc = "Previous Buffer";};
|
|
}
|
|
{
|
|
mode = "n";
|
|
key = "<S-l>";
|
|
action = "<CMD>bnext<CR>";
|
|
options = {desc = "Next Buffer";};
|
|
}
|
|
{
|
|
mode = "n";
|
|
key = "<leader>bb";
|
|
action = "<CMD>e #<CR>";
|
|
options = {desc = "Switch To Other Buffer";};
|
|
}
|
|
{
|
|
mode = "n";
|
|
key = "<leader>bd";
|
|
action = "<CMD>bd<CR>";
|
|
options = {desc = "Delete Buffer and Window";};
|
|
}
|
|
{
|
|
mode = "n";
|
|
key = "<leader>bp";
|
|
action = "<CMD>BufferLineTogglePin<CR>";
|
|
options = {desc = "Toggle Pin";};
|
|
}
|
|
{
|
|
mode = "n";
|
|
key = "<leader>bP";
|
|
action = "<CMD>BufferLineGroupClose ungrouped<CR>";
|
|
options = {desc = "Delete Non-Pinned Buffers";};
|
|
}
|
|
{
|
|
mode = "n";
|
|
key = "<leader>bo";
|
|
action = "<CMD>BufferLineCloseOthers<CR>";
|
|
options = {desc = "Delete Other Buffers";};
|
|
}
|
|
{
|
|
mode = "n";
|
|
key = "<leader>br";
|
|
action = "<CMD>BufferLineCloseRight<CR>";
|
|
options = {desc = "Delete Buffers to the Right";};
|
|
}
|
|
{
|
|
mode = "n";
|
|
key = "<leader>bl";
|
|
action = "<CMD>BufferLineCloseLeft<CR>";
|
|
options = {desc = "Delete Buffers to the Left";};
|
|
}
|
|
|
|
# DAP Telescope Actions
|
|
{
|
|
mode = "n";
|
|
key = "<leader>d/c";
|
|
action = "<CMD>Telescope dap commands<CR>";
|
|
options = {desc = "Search Commands";};
|
|
}
|
|
{
|
|
mode = "n";
|
|
key = "<leader>d/b";
|
|
action = "<CMD>Telescope dap list_breakpoints<CR>";
|
|
options = {desc = "Search Breakpoints";};
|
|
}
|
|
{
|
|
mode = "n";
|
|
key = "<leader>d/v";
|
|
action = "<CMD>Telescope dap variables<CR>";
|
|
options = {desc = "Search Variables";};
|
|
}
|
|
{
|
|
mode = "n";
|
|
key = "<leader>d/f";
|
|
action = "<CMD>Telescope dap frames<CR>";
|
|
options = {desc = "Search Frames";};
|
|
}
|
|
];
|
|
}
|