{ programs.nixvim = { globals = { mapleader = " "; maplocalleader = " "; }; keymaps = [ { mode = "n"; # Normal mode 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 = "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; }; } ]; }; }