{ programs.nixvim = { globals = { mapleader = " "; maplocalleader = " "; }; keymaps = [ { mode = [ "n" "s" "x" "v" ]; key = ""; action = ""; options.silent = true; } { mode = "n"; key = ""; action = "h"; options = { desc = "Move Left"; silent = true; }; } { mode = "n"; key = ""; action = "j"; options = { desc = "Move Down"; silent = true; }; } { mode = "n"; key = ""; action = "k"; options = { desc = "Move Up"; silent = true; }; } { mode = "n"; key = ""; action = "l"; options = { desc = "Move Right"; silent = true; }; } { mode = "n"; key = ""; action = "bnext"; options = { desc = "Next Buffer"; silent = true; }; } { mode = "n"; key = ""; action = "bprevious"; options = { desc = "Previous Buffer"; silent = true; }; } { mode = "n"; key = "c"; action = "%y+"; options = { desc = "Copy Buffer to Clipboard"; silent = true; }; } { mode = [ "v" "x" "s" ]; key = "c"; action = "\"+y"; options = { desc = "Copy Selection to Clipboard"; silent = true; }; } { mode = "n"; key = "w"; action = "w"; options = { desc = "Save Buffer to File"; silent = false; }; } { mode = "n"; key = "q"; action = "bd"; options = { desc = "Close Buffer"; silent = false; }; } { mode = "n"; key = "Q"; action = "bd!"; options = { desc = "Force Close Buffer"; silent = false; }; } { mode = "n"; key = "`"; action = "qa"; options = { desc = "Quit All"; silent = false; }; } { mode = "t"; key = ""; action = ""; options = { desc = "Exit Terminal Mode"; # why does Neovim not have this by default??? wtf??? silent = true; }; } ]; }; }