{ programs.nixvim = { globals.mapleader = " "; keymaps = [ { mode = "n"; key = "f"; action = "+find/file"; options.desc = "Find a file"; } { mode = "n"; key = "s"; action = "+search"; options.desc = "Search in your file"; } { mode = "n"; key = "q"; action = "+quit/session"; options.desc = "Quit the current session"; } { mode = ["n" "v"]; key = "g"; action = "+git"; } { mode = "n"; key = "u"; action = "+ui"; } { mode = "n"; key = "w"; action = "+windows"; } { mode = "n"; key = ""; action = "+tab"; } { mode = ["n" "v"]; key = "d"; action = "+debug"; } { mode = ["n" "v"]; key = "c"; action = "+code"; } { mode = ["n" "v"]; key = "t"; action = "+test"; } # Tabs { mode = "n"; key = ""; action = "tabnew"; options = { silent = true; desc = "New Tab"; }; } { mode = "n"; key = "d"; action = "tabclose"; options = { silent = true; desc = "Close tab"; }; } # Windows { mode = "n"; key = "ww"; action = "p"; options = { silent = true; desc = "Other window"; }; } { mode = "n"; key = "wd"; action = "c"; options = { silent = true; desc = "Delete window"; }; } { mode = "n"; key = "w-"; action = "s"; options = { silent = true; desc = "Split window below"; }; } { mode = "n"; key = "w|"; action = "v"; options = { silent = true; desc = "Split window right"; }; } { mode = "n"; key = ""; action = "h"; options = { silent = true; desc = "Move to window left"; }; } { mode = "n"; key = ""; action = "l"; options = { silent = true; desc = "Move to window right"; }; } { mode = "n"; key = ""; action = "k"; options = { silent = true; desc = "Move to window over"; }; } { mode = "n"; key = ""; action = "j"; options = { silent = true; desc = "Move to window bellow"; }; } { mode = "n"; key = ""; action = "w"; options = { silent = true; desc = "Save file"; }; } # Quit/Session { mode = "n"; key = "qq"; action = "quitall"; options = { silent = true; desc = "Quit all"; }; } { mode = "n"; key = "ul"; action = ":lua ToggleLineNumber()"; options = { silent = true; desc = "Toggle Line Numbers"; }; } { mode = "n"; key = "uL"; action = ":lua ToggleRelativeLineNumber()"; options = { silent = true; desc = "Toggle Relative Line Numbers"; }; } { mode = "n"; key = "uw"; action = ":lua ToggleWrap()"; options = { silent = true; desc = "Toggle Line Wrap"; }; } { mode = "v"; key = "J"; action = ":m '>+1gv=gv"; options = {desc = "Use move command when line is highlighted ";}; } { mode = "v"; key = "K"; action = ":m '>-2gv=gv"; options = {desc = "Use move command when line is highlighted ";}; } { mode = "n"; key = "J"; action = "mzJ`z"; options = { desc = "Allow cursor to stay in the same place after appending to current line "; }; } { mode = "n"; key = ""; action = ""; #action = "zz"; options = { desc = "Allow C-d and C-u to keep the cursor in the middle"; }; } { mode = "n"; key = ""; #action = "zz"; action = ""; options = { desc = "Allow C-d and C-u to keep the cursor in the middle"; }; } { mode = "n"; key = "n"; action = "nzzzv"; options = {desc = "Allow search terms to stay in the middle ";}; } { mode = "n"; key = "N"; action = "Nzzzv"; options = {desc = "Allow search terms to stay in the middle ";}; } # Paste stuff without saving the deleted word into the buffer { mode = "x"; key = "p"; action = ''"_dP''; options = {desc = "Deletes to void register and paste over";}; } # Copy stuff to system clipboard with + y or just y to have it just in vim { mode = ["n" "v"]; key = "y"; action = ''"+y''; options = {desc = "Copy to system clipboard";}; } { mode = ["n" "v"]; key = "Y"; action = ''"+Y''; options = {desc = "Copy to system clipboard";}; } # Delete to void register { mode = ["n" "v"]; key = "D"; action = ''"_d''; options = {desc = "Delete to void register";}; } # instead of pressing esc just because { mode = "i"; key = ""; action = ""; } { mode = "n"; key = "zz"; action = " ZenMode | Pencil"; options = {desc = "Toggle writting mode";}; } { mode = "n"; key = "m"; action = " Grapple toggle "; options = {desc = "Grapple Toggle tag";}; } { mode = "n"; key = "k"; action = " Grapple toggle_tags "; options = {desc = "Grapple Toggle tag";}; } { mode = "n"; key = "K"; action = " Grapple toggle_scopes "; options = {desc = "Grapple Toggle scopes";}; } { mode = "n"; key = "j"; action = " Grapple cycle forward "; options = {desc = "Grapple Cycle forward";}; } { mode = "n"; key = "J"; action = " Grapple cycle backward "; options = {desc = "Grapple Cycle backward";}; } { mode = "n"; key = "1"; action = " Grapple select index=1"; options = {desc = "Grapple Select 1";}; } { mode = "n"; key = "2"; action = " Grapple select index=2"; options = {desc = "Grapple Select 2";}; } { mode = "n"; key = "3"; action = " Grapple select index=3"; options = {desc = "Grapple Select 3";}; } { mode = "n"; key = "4"; action = " Grapple select index=4"; options = {desc = "Grapple Select 4";}; } ]; extraConfigLua = '' function ToggleLineNumber() if vim.wo.number then vim.wo.number = false else vim.wo.number = true vim.wo.relativenumber = false end end function ToggleRelativeLineNumber() if vim.wo.relativenumber then vim.wo.relativenumber = false else vim.wo.relativenumber = true vim.wo.number = false end end function ToggleWrap() vim.wo.wrap = not vim.wo.wrap end ''; }; }