return { { "nvzone/showkeys", cmd = "ShowkeysToggle", opts = {}, keys = { { "zk", "ShowkeysToggle", desc = "Toggle keys" }, }, }, { "folke/which-key.nvim", event = "VeryLazy", cmd = "WhichKey", dependencies = { "echasnovski/mini.icons", "nvim-tree/nvim-web-devicons" }, opts = { preset = "classic", -- false | "classic" | "modern" | "helix" keys = { scroll_down = "", scroll_up = "", }, }, config = function(_, opts) local wk = require("which-key") wk.setup(opts) wk.add({ { mode = { "n", "v" }, { "g", group = "Goto" }, { "g`", group = "Marks" }, { "g'", group = "Marks" }, { "gs", group = "Search/Surround" }, { "gx", desc = "Open with system app" }, { "s", group = "Surround/Search & replace on line" }, { "S", group = "Surround/Search & replace in file" }, { "z", group = "Fold" }, { "`", group = "Marks" }, { "'", group = "Marks" }, { '"', group = "Registers" }, { "]", group = "Next" }, { "]]", group = "Next" }, { "[", group = "Prev" }, { "[[", group = "Prev" }, { "=", group = "Line paste" }, { "", group = "Windows" }, { "", group = "Leader" }, { "a", group = "Ascii" }, { "b", group = "Buffer", expand = function() return require("which-key.extras").expand.buf() end, }, { "B", group = "Buffer (force)" }, { "C", group = "Goto realpath" }, { "d", group = "Delete" }, { "D", group = "Delete (blackhole)" }, { "e", group = "Explorer" }, { "i", group = "Inspect" }, { "l", group = "Location" }, { "L", group = "Lazy" }, { "M", group = "Mason" }, { "o", group = "Open" }, { "p", group = "Paste" }, { "P", group = "Paste" }, { "q", group = "Quit" }, { "sk", group = "Keys" }, { "S", group = "Save/Source" }, { "w", group = "Which-key" }, { "W", group = "Save all" }, { "z", group = "Toggle" }, { "", group = "Tabs" }, { "", group = "Local Leader (bookmarks)" }, { "", group = "Bookmarks (explorer)" }, { "", group = "Bookmarks (mini)" }, { "t", group = "Task" }, }, { mode = { "n", "v", "x" }, { "gw", desc = "Visible in window" }, { "g%", desc = "Match backward" }, { "g;", desc = "Last change" }, { "Q", group = "Quit all" }, }, }) end, keys = { { "?", function() require("which-key").show({ global = false }) end, desc = "Buffer local keymaps (which-key)", }, { "wk", function() local ok, input = pcall(vim.fn.input, "WhichKey: ") if ok and input ~= "" then vim.cmd("WhichKey " .. input) end end, desc = "Which-key query lookup", }, { mode = { "n", "v", "x" }, "wK", "WhichKey", desc = "Which-key all key", }, }, }, }