return { 'folke/which-key.nvim', event = 'VeryLazy', config = function() local wk = require 'which-key' wk.setup { plugins = { marks = true, -- shows a list of your marks on ' and ` registers = true, -- shows your registers on " in NORMAL or in INSERT mode -- the presets plugin, adds help for a bunch of default keybindings in Neovim -- No actual key bindings are created presets = { operators = true, -- adds help for operators like d, y, ... motions = true, -- adds help for motions text_objects = false, -- help for text objects triggered after entering an operator windows = true, -- default bindings on nav = true, -- misc bindings to work with windows z = true, -- bindings for folds, spelling and others prefixed with z g = true, -- bindings for prefixed with g }, }, icons = { breadcrumb = '»', -- symbol used in the command line area that shows your active key combo separator = '➜ ', -- symbol used between a key and it's label group = '+', -- symbol prepended to a group }, window = { border = 'none', -- none, single, double, shadow position = 'bottom', -- bottom, top margin = { 1, 0, 1, 0 }, -- extra window margin [top, right, bottom, left] padding = { 1, 1, 1, 1 }, -- extra window padding [top, right, bottom, left] }, layout = { height = { min = 4, max = 25 }, -- min and max height of the columns width = { min = 20, max = 50 }, -- min and max width of the columns spacing = 3, -- spacing between columns }, hidden = { '', '', '', '', 'call', 'lua', '^:', '^ ' }, -- hide mapping boilerplate show_help = true, -- show help message on the command line when the popup is visible } local opts = { mode = 'n', -- NORMAL mode prefix = '', buffer = nil, -- Global mappings. Specify a buffer number for buffer local mappings silent = true, -- use `silent` when creating keymaps noremap = true, -- use `noremap` when creating keymaps nowait = false, -- use `nowait` when creating keymaps } local mappings = { ['o'] = { 'e ~/.config/nvim/ ', 'Neovim config' }, ['rr'] = 'Search and replace all', ['rs'] = 'Search and replace', ['q'] = { 'lua UnMapDHM()', 'qwerty' }, ['c'] = { 'lua MapDHM()', 'colemak' }, [';'] = { 'bd', 'Delete buffer' }, [''] = { name = 'Tab', n = { 'tabnew', 'New' }, p = { 'tabp', 'Previous' }, d = { 'tabclose', 'Close' }, [''] = { 'tabnext', 'Next' }, ['1'] = { '1gt', 'Go to tab 1' }, ['2'] = { '2gt', 'Go to tab 2' }, ['3'] = { '3gt', 'Go to tab 3' }, ['4'] = { '4gt', 'Go to tab 4' }, ['5'] = { '5gt', 'Go to tab 5' }, ['6'] = { '6gt', 'Go to tab 6' }, ['7'] = { '7gt', 'Go to tab 7' }, ['8'] = { '8gt', 'Go to tab 8' }, ['9'] = { '9gt', 'Go to tab 9' }, }, w = { name = 'Window', v = { 'v', 'Vertical split' }, h = { 's', 'Horizontal split' }, }, } wk.register(mappings, opts) end, }