return { "folke/which-key.nvim", opts = { plugins = { spelling = true }, defaults = { mode = { "n", "v" }, ["g"] = { name = "+goto" }, ["gz"] = { name = "+surround" }, ["z"] = { name = "+fold" }, ["]"] = { name = "+next" }, ["["] = { name = "+prev" }, ["="] = { name = "+line paste" }, ["\\"] = { name = "+local leader" }, [""] = { name = "+leader" }, ["<"] = { name = "+B/A paste & L/R indent" }, ["="] = { name = "+paste & B/A filtter" }, [">"] = { name = "+B/A paste & L/R indent" }, ["["] = { name = "+indent B/A cursor" }, ["]"] = { name = "+indent B/A cursor" }, [""] = { name = "+tabs" }, ["b"] = { name = "+buffer" }, ["c"] = { name = "+code" }, ["cp"] = { name = "+copy" }, ["dd"] = { name = "+db" }, ["dP"] = { name = "+class/method" }, ["f"] = { name = "+file/find" }, ["h"] = { name = "+harpoon" }, ["g"] = { name = "+git" }, ["gh"] = { name = "+hunks" }, ["gz"] = { name = "+surround" }, ["m"] = { name = "+mason" }, ["n"] = { name = "+annotation" }, ["o"] = { name = "+obsidian" }, ["on"] = { name = "+note" }, ["op"] = { name = "+paste" }, ["ot"] = { name = "+template" }, ["p"] = { name = "+playground" }, ["q"] = { name = "+quit/session" }, ["r"] = { name = "+refactoring" }, ["s"] = { name = "+search" }, ["u"] = { name = "+ui" }, ["w"] = { name = "+windows/which-key" }, ["x"] = { name = "+trouble/quickfix" }, }, }, keys = { vim.keymap.set("n", "wK", function() vim.cmd("WhichKey") end, { desc = "Which-key All Key" }), vim.keymap.set("n", "wk", function() local input = vim.fn.input("WhichKey: ") vim.cmd("WhichKey " .. input) end, { desc = "Which-key Query Lookup" }), }, }