_: let # TODO: Doesn't work reliably. I think they are rebound by plugins after? Try setting in extraConfigLuaPost... disabled-mappings = let mkDisabledMapping = mapping: { mode = ["n" "v"]; key = mapping; action = ""; }; disableMappings = [ # I only use f/F with flash "s" "S" "t" "T" "H" "L" # Use flash to repeat f/F instead of ;/, # ;/, are now free for localleader and exiting visual mode like helix "," ";" # Use Telescope on "/", I don't want backwards search "?" ]; in builtins.map mkDisabledMapping disableMappings; no-leader = [ # Cursor movement { mode = "n"; key = "j"; action = "v:count == 0 ? 'gj' : 'j'"; options.desc = "Move Cursor Down"; options.expr = true; } { mode = "n"; key = ""; action = "v:count == 0 ? 'gj' : 'j'"; options.desc = "Move Cursor Down"; options.expr = true; } { mode = "n"; key = "k"; action = "v:count == 0 ? 'gk' : 'k'"; options.desc = "Move Cursor Up"; options.expr = true; } { mode = "n"; key = ""; action = "v:count == 0 ? 'gk' : 'k'"; options.desc = "Move Cursor Up"; options.expr = true; } { mode = "n"; key = "H"; action = "^"; options.desc = "Move Cursor to Line Start"; } { mode = "n"; key = "L"; action = "$"; options.desc = "Move Cursor to Line End"; } # Window resize { mode = "n"; key = ""; action = "vertical resize -2"; options.desc = "Decrease Window Width"; } { mode = "n"; key = ""; action = "vertical resize +2"; options.desc = "Increase Window Width"; } { mode = "n"; key = ""; action = "resize -2"; options.desc = "Decrease Window Height"; } { mode = "n"; key = ""; action = "resize +2"; options.desc = "Increase Window Height"; } # Move lines { mode = "n"; key = ""; action = "m .+1=="; options.desc = "Move Line Down"; } { mode = "i"; key = ""; action = "m .+1==gi"; options.desc = "Move Line Down"; } { mode = "v"; key = ""; action = ":m '>+1gv=gv"; options.desc = "Move Line Down"; } { mode = "n"; key = ""; action = "m .-2=="; options.desc = "Move Line Up"; } { mode = "i"; key = ""; action = "m .-2==gi"; options.desc = "Move Line Up"; } { mode = "v"; key = ""; action = ":m '<-2gv=gv"; options.desc = "Move Line Up"; } # Save buffers { mode = ["n" "i" "v"]; key = ""; action = "w"; options.desc = "Save Buffer"; } { mode = ["n" "i" "v"]; key = ""; action = "wa"; options.desc = "Save All Buffers"; } # Indentation { mode = "v"; key = "<"; action = " although i binding? } { mode = "i"; key = ""; action = ""; options.desc = "Delete Previous Word"; # TODO: Breaks backspace in although i binding? } # Clipboard { mode = "i"; key = ""; action = "\"+pi"; options.desc = "Paste"; } { mode = "i"; key = ""; action = "\"+pi"; options.desc = "Paste"; } { mode = "v"; key = ""; action = "\"+y"; options.desc = "Copy"; } { mode = ["n" "i"]; key = ""; action = "YankyRingHistory"; options.desc = "Paste (Yanky)"; } { mode = "n"; key = ""; action = "YankyClearHistory"; options.desc = "Clear Yanky History"; } # Various { mode = "n"; key = ""; action = "nohlsearch"; options.desc = "Clear Search Highlights"; } # { # mode = "n"; # key = "K"; # action = "lua vim.lsp.buf.hover()"; # options.desc = "LSP Hover"; # } { mode = "n"; key = "K"; action = "lua require('hover').hover()"; options.desc = "LSP Hover"; } { mode = "n"; key = "/"; action = "lua Snacks.picker.lines()"; options.desc = "Find in Buffer"; } { mode = ["n" "v"]; key = ";"; action = "%"; options.desc = "Matching ()[]<>"; } # { # mode = "v"; # key = ";"; # action = ""; # options.desc = "Exit Visual Mode"; # } ]; leader = [ { mode = "n"; key = "L"; action = "Lazy"; options.desc = "Lazy Packages"; } { mode = "n"; key = "e"; action = "lua Snacks.explorer.open({ enter = false, on_show = function() vim.cmd('wincmd =') end })"; options.desc = "Toggle Explorer"; } { mode = "n"; key = "n"; action = "Navbuddy"; options.desc = "Toggle NavBuddy"; } { mode = "n"; key = "p"; action = "lua Snacks.picker.pickers()"; options.desc = "Show Pickers"; } { mode = "n"; key = "N"; action = "lua Snacks.picker.notifications()"; options.desc = "Notifications Picker"; } { mode = "n"; key = "R"; action = "lua Snacks.picker.resume()"; options.desc = "Last Picker"; } { mode = "n"; key = "r"; action = "lua vim.g.toggle_rcmp()"; # Defined in extraConfigLua.lua options.desc = "Show Rcmp"; } { mode = "n"; key = "i"; action = "lua Snacks.picker.icons()"; options.desc = "Icons Picker"; } { mode = "n"; key = ";"; action = "lua Snacks.picker.command_history()"; options.desc = "Command History"; } { mode = "n"; key = ":"; action = "lua Snacks.picker.commands()"; options.desc = "Commands Picker"; } { mode = "n"; key = "m"; action = "lua Snacks.picker.marks()"; options.desc = "Marks Picker"; } { mode = "n"; key = "j"; action = "lua Snacks.picker.jumps()"; options.desc = "Jumps Picker"; } { mode = "n"; key = "d"; action = "lua Snacks.picker.todo_comments()"; options.desc = "List TODOs"; } { mode = "n"; key = "/"; action = "lua Snacks.picker.grep()"; options.desc = "Find in Project"; } { mode = "n"; key = "Q"; action = "lua Snacks.picker.qflist()"; options.desc = "Quickfix History"; } # { # mode = "n"; # key = "Q"; # action = "cexpr []"; # options.desc = "Clear Quickfix List"; # } { mode = "n"; key = "W"; action = ":set wrap!"; options.desc = "Toggle Word Wrap"; } { mode = "n"; key = "y"; action = "Yazi"; options.desc = "Toggle Yazi"; } ]; leader-file = [ { mode = "n"; key = "f"; action = "+file"; } { mode = "n"; key = "ff"; action = "lua Snacks.picker.files()"; options.desc = "Find File"; } { mode = "n"; key = "fl"; action = "lua Snacks.picker.recent()"; options.desc = "Last Files"; } { mode = "n"; key = "fo"; action = "ObsidianSearch"; options.desc = "Obsidian Note"; } { mode = "n"; key = "fr"; action = "edit!"; options.desc = "Reload File"; } { mode = "n"; key = "fu"; action = "lua Snacks.picker.und()"; options.desc = "Undo Picker"; } { mode = "n"; key = "fc"; action = "edit ~/.config/nvim/init.lua"; options.desc = "Open NeoVim Config"; } { mode = "n"; key = "fh"; action = "edit ~/.config/hypr/hyprland.conf"; options.desc = "Open Hyprland Config"; } { mode = "n"; key = "fn"; action = "enew"; options.desc = "New File"; } { mode = "n"; key = "fs"; action.__raw = '' function() local filename = vim.fn.input("Enter Filename: ") vim.cmd("write "..filename) end ''; options.desc = "Save File"; } ]; leader-help = [ { mode = "n"; key = "h"; action = "+help"; } # { # mode = "n"; # key = "hv"; # action = "Telescope vim_options"; # options.desc = "Telescope Vimopts"; # } { mode = "n"; key = "hk"; action = "lua Snacks.picker.keymaps()"; options.desc = "Keymaps Picker"; } { mode = "n"; key = "hm"; action = "lua Snacks.picker.man()"; options.desc = "Manpages Picker"; } { mode = "n"; key = "hh"; action = "lua Snacks.picker.help()"; options.desc = "Helptags Picker"; } ]; leader-quit = [ { mode = "n"; key = "q"; action = "+quit"; } { mode = "n"; key = "qq"; action = "quitall"; options.desc = "Quit"; } { mode = "n"; key = "qQ"; action = "quitall!"; options.desc = "Force Quit"; } ]; leader-session = [ { mode = "n"; key = "s"; action = "+session"; } { mode = "n"; key = "sl"; action = "lua require('persisted').select()"; options.desc = "Restore Session"; } { mode = "n"; key = "ss"; action = "SessionSave"; options.desc = "Save Session"; } { mode = "n"; key = "sd"; action = "SessionDelete"; options.desc = "Delete Session"; } ]; leader-buffers = [ { mode = "n"; key = "b"; action = "+buffer"; } { mode = "n"; key = "bb"; action = "lua Snacks.picker.buffers()"; options.desc = "Buffers Picker"; } { mode = "n"; key = ""; action = "lua Snacks.picker.buffers()"; options.desc = "Buffers Picker"; } { mode = "n"; key = "bn"; action = "bnext"; options.desc = "Next Buffer"; } { mode = "n"; key = "bp"; action = "bprevious"; options.desc = "Previous Buffer"; } { mode = "n"; key = "bN"; action = "enew"; options.desc = "New Buffer"; } { mode = "n"; key = "bd"; action = "lua Snacks.bufdelete()"; options.desc = "Close Buffer"; } ]; leader-tabs = [ { mode = "n"; key = "T"; action = "+tab"; } # { # mode = "n"; # key = "Tt"; # action = "Telescope telescope-tabs list_tabs"; # options.desc = "List Tabpages"; # } # { # mode = "n"; # key = ""; # action = "Telescope telescope-tabs list_tabs"; # options.desc = "List Tabpages"; # } { mode = "n"; key = "Tn"; action = "tabnext"; options.desc = "Next Tabpage"; } { mode = "n"; key = "Tp"; action = "tabprevious"; options.desc = "Previous Tabpage"; } { mode = "n"; key = "TN"; action = "tabnew"; options.desc = "New Tabpage"; } { mode = "n"; key = "Td"; action = "tabclose"; options.desc = "Close Tabpage"; } ]; leader-windows = [ { mode = "n"; key = "w"; action = "+window"; } { mode = "n"; key = "wd"; action = "c"; options.desc = "Close Window"; } { mode = "n"; key = "ws"; action = "s"; options.desc = "Split Horizontally"; } { mode = "n"; key = "wv"; action = "v"; options.desc = "Split Vertically"; } { mode = "n"; key = "w="; action = "="; options.desc = "Balance Windows"; } { mode = "n"; key = "wh"; action = "h"; options.desc = "Goto Left Window"; } { mode = "n"; key = "wl"; action = "l"; options.desc = "Goto Wight Window"; } { mode = "n"; key = "wj"; action = "j"; options.desc = "Goto Bottom Window"; } { mode = "n"; key = "wk"; action = "k"; options.desc = "Goto Top Window"; } { mode = "n"; key = "ww"; action = "lua vim.api.nvim_set_current_win(require('window-picker').pick_window() or vim.api.nvim_get_current_win())"; options.desc = "Jump to Window"; } { mode = "n"; key = "wm"; action = "WinShift"; options.desc = "Move Window"; } ]; leader-git = [ { mode = "n"; key = "g"; action = "+git"; } { mode = "n"; key = "gg"; action = "lua Snacks.lazygit.open()"; options.desc = "LazyGit"; } { mode = "n"; key = "gm"; action = "lua Snacks.git.blame_line()"; options.desc = "Git Blame"; } { mode = "n"; key = "gs"; action = "lua Snacks.picker.git_status()"; options.desc = "Git Status"; } { mode = "n"; key = "gl"; action = "lua Snacks.picker.git_log()"; options.desc = "Git Log"; } { mode = "n"; key = "gb"; action = "lua Snacks.picker.git_branches()"; options.desc = "Git Branches"; } { mode = "n"; key = "gf"; action = "lua Snacks.picker.git_log_file()"; options.desc = "Git File History"; } { mode = "n"; key = "gd"; action = "DiffviewOpen"; options.desc = "Git DiffView"; } ]; leader-code = [ { mode = "n"; key = "c"; action = "+code"; } { mode = "n"; key = "cf"; action = "lua require('conform').format()"; options.desc = "Format Buffer"; } { mode = "n"; key = "cd"; action = "lua vim.diagnostic.open_float()"; options.desc = "Line Diagnostics"; } { mode = "n"; key = "cD"; action = "lua Snacks.picker.diagnostics()"; options.desc = "List Diagnostics"; } { mode = "n"; key = "cr"; action = "lua vim.lsp.buf.rename()"; options.desc = "Rename Symbol"; } { mode = "n"; key = "ca"; action = "lua vim.lsp.buf.code_action()"; options.desc = "Code Actions"; } # { # mode = "n"; # key = "cI"; # action = "Telescope lsp_incoming_calls"; # options.desc = "LSP Incoming Calls"; # } # { # mode = "n"; # key = "cO"; # action = "Telescope lsp_outgoing_calls"; # options.desc = "LSP Outgoing Calls"; # } { mode = "n"; key = "cC"; action = "Neogen"; options.desc = "Generate Doc Comment"; } # Toggles { mode = "n"; key = "t"; action = "+toggle"; } { mode = "n"; key = "td"; action = "ToggleInlineDiagnostics"; options.desc = "Inline Diagnostics"; } { mode = "n"; key = "tt"; action = "Trouble diagnostics toggle focus=false win.position=bottom"; options.desc = "Trouble Diagnostics"; } { mode = "n"; key = "tD"; action = "Trouble todo toggle focus=false win.position=bottom"; options.desc = "Toggle TODOs"; } { mode = "n"; key = "ts"; action = "Trouble symbols toggle focus=false win.position=right"; options.desc = "Trouble Symbols"; } { mode = "n"; key = "tf"; action = "ToggleAutoformat"; options.desc = "Format on Save"; } { mode = "n"; key = "tl"; action = "ToggleAutoLint"; options.desc = "Lint on Save"; } # GoTo { mode = "n"; key = "cg"; action = "+goto"; } { mode = "n"; key = "cgh"; action = "ClangdSwitchSourceHeader"; options.desc = "Switch C/C++ Source/Header"; } { mode = "n"; key = "cgr"; action = "lua Snacks.picker.lsp_references()"; options.desc = "LSP References"; } { mode = "n"; key = "cgd"; action = "lua Snacks.picker.lsp_definitions()"; options.desc = "LSP Definitions"; } { mode = "n"; key = "cgi"; action = "lua Snacks.picker.lsp_implementations()"; options.desc = "LSP Implementations"; } { mode = "n"; key = "cgt"; action = "lua Snacks.picker.lsp_type_definitions()"; options.desc = "LSP Type Definitions"; } { mode = "n"; key = "cge"; action = "lua vim.diagnostic.goto_next()"; options.desc = "Next Diagnostic"; } { mode = "n"; key = ""; action = "lua vim.diagnostic.goto_next()"; options.desc = "Next Diagnostic"; } { mode = "n"; key = "cgE"; action = "lua vim.diagnostic.goto_prev()"; options.desc = "Previous Diagnostic"; } { mode = "n"; key = ""; action = "lua vim.diagnostic.goto_prev()"; options.desc = "Previous Diagnostic"; } { mode = "n"; key = ""; action = "cnext"; options.desc = "Next Quickfix Item"; } { mode = "n"; key = "cgq"; action = "cnext"; options.desc = "Next Quickfix Item"; } { mode = "n"; key = ""; action = "cprevious"; options.desc = "Previous Quickfix Item"; } { mode = "n"; key = "cgQ"; action = "cprevious"; options.desc = "Previous Quickfix Item"; } ]; localleader-latex = [ ]; in builtins.concatLists [ disabled-mappings no-leader leader leader-file leader-help leader-quit leader-session leader-buffers leader-tabs leader-windows leader-git leader-code localleader-latex ]