local whichkey = require("which-key") local keymap = { { "T", group = "todo" }, { "TN", function() require("todo-comments").jump_prev() end, desc = "Jump to previous TODO:" }, { "TT", "TodoTelescope", desc = "Search TODO:'s" }, { "Tj", "TodoLocList", desc = "List TODO:'s in buffer" }, { "Tn", function() require("todo-comments").jump_next() end, desc = "Jump to next TODO:" }, { "d", group = "DAP debug tools" }, { "db", function() require('dap').toggle_breakpoint() end, desc = "continue/launch" }, { "dc", function() require('dap').continue() end, desc = "continue/launch" }, { "di", function() require('dap').step_into() end, desc = "continue/launch" }, { "do", function() require('dap').step_over() end, desc = "continue/launch" }, { "f", group = "find (telescope)" }, { "ff", "Telescope find_files", desc = "Find" }, { "fg", "Telescope live_grep", desc = "Grep" }, { "fh", "Telescope help_tags", desc = "Help Tags" }, { "fo", "Telescope oldfiles", desc = "Old Files" }, { "g", group = "git" }, { "gb", "Telescope git_branches", desc = "Branches" }, { "gg", "Telescope git_commits", desc = "LazyGit" }, { "gl", "LazyGit", desc = "Commits" }, { "gs", "Telescope git_status", desc = "Status" }, { "l", group = "lsp" }, { "lD", "lua vim.lsp.buf.declaration()", desc = "Declaration" }, { "lN", "lua vim.diagnostic.goto_prev()", desc = "Previous Diagnostic" }, { "lR", "lua vim.lsp.buf.rename()", desc = "Rename" }, { "la", "lua vim.lsp.buf.code_action()", desc = "Code Action" }, { "ld", "lua vim.lsp.buf.definition()", desc = "Definition" }, { "le", "lua vim.diagnostic.open_float()", desc = "Diagnostic Float" }, { "lf", function() vim.lsp.buf.format { async = true } end, desc = "Format" }, { "li", "lua vim.lsp.buf.implementation()", desc = "Implementation" }, { "lj", "lua vim.diagnostic.setloclist()", desc = "Diagnostic List" }, { "lk", "lua vim.lsp.buf.hover()", desc = "Hover" }, { "ln", "lua vim.diagnostic.goto_next()", desc = "Next Diagnostic" }, { "lr", "lua vim.lsp.buf.references()", desc = "References" }, { "lt", "lua vim.lsp.buf.type_definition()", desc = "Type Definition" }, { "m", "DarkLightSwitch", desc = "Toggle dark mode" }, { "o", group = "org mode" }, { "t", desc = "Toggle Terminal" }, { "v", group = "obsidian Vault" }, { "vL", "ObsidianLinkNew", desc = "Link New Note from Current Selection" }, { "vT", "ObsidianTemplate", desc = "Open Template" }, { "vb", "ObsidianBacklinks", desc = "List Backlinks" }, { "vd", "ObsidianToday", desc = "Open Daily Note" }, { "vf", "ObsidianFollowLink", desc = "Follow Link" }, { "vi", "e ~/Sync/wiki/index.md", desc = "Open Index" }, { "vl", "ObsidianLink", desc = "Link Current Selection" }, { "vn", "ObsidianNew", desc = "New Note" }, { "vo", "ObsidianOpen", desc = "Obsidian Open" }, { "vp", "ObsidianPasteImg", desc = "Paste Image" }, { "vq", "ObsidianQuickSwitch", desc = "Quick Switch with fzf" }, { "vr", "ObsidianRename", desc = "Rename Note" }, { "vs", "ObsidianSearch", desc = "Search Notes" }, { "vt", "ObsidianTomorrow", desc = "Open Tomorrows Note" }, { "vw", "ObsidianWorkspace", desc = "Switch Workspace" }, { "vy", "ObsidianYesterday", desc = "Open Yesterdays Note" }, { "w", group = "window" }, { "w+", desc = "Increase height" }, { "w-", desc = "Decrease height" }, { "w<", desc = "Decrease width" }, { "w=", desc = "Equally high and wide" }, { "w>", desc = "Increase width" }, { "wT", desc = "Break out into a new tab" }, { "wh", desc = "Go to the left window" }, { "wj", desc = "Go to the down window" }, { "wk", desc = "Go to the up window" }, { "wl", desc = "Go to the right window" }, { "wq", desc = "Quit a window" }, { "ws", desc = "Split window" }, { "wv", desc = "Split window vertically" }, { "ww", desc = "Pick Window" }, { "wx", desc = "Swap current with next" }, { "w|", desc = "Max out the width" }, } -- Map window keys to leader w vim.cmd [[nmap w ]] whichkey.setup { hide_statusline = false, default_keymap_settings = { silent = true, noremap = true, }, default_mode = 'n', } whichkey.add(keymap)