return { 'folke/which-key.nvim', event = 'UIEnter', opts = { preset = 'helix', icons = { breadcrumb = ' ', separator = ' ', group = '', rules = false, }, triggers = { { '', mode = 'nixsotc' }, { '', mode = { 'n', 'v' } }, }, spec = { mode = { 'n', 'v' }, { '[', group = ' Previous' }, { ']', group = ' Next' }, { 'b', group = ' Debug' }, { 'c', group = ' Code' }, { 'C', group = ' Comment' }, { 'd', group = ' Database' }, { 'e', group = ' Edit' }, { 'f', group = ' Find' }, { 'i', group = ' Insert' }, { 'j', group = ' Jump' }, { 'k', group = ' Keys' }, { 'l', group = ' LSP' }, { 'm', group = '󰠠 Misc' }, { 'n', group = ' Notes' }, { 'q', group = ' Quit' }, { 's', group = ' Split' }, { 't', group = ' Terminal' }, { 'u', group = ' Test' }, { 'v', group = ' Select' }, { 'w', group = ' Writing' }, { 'x', group = '󰁨 Diagnostics/Quickfix' }, { 'y', group = ' Yank' }, }, }, keys = { { '?', function() require('which-key').show({ global = false }) end, desc = ' Buffer Local Keymaps (which-key)', }, -- other keymaps { 'cR', 'ReloadConfig', desc = 'Reload Configs' }, { 'cd', 'RootDir', desc = 'Root Directory' }, { 'cl', ':g/^\\s*$/d', desc = 'Clean Empty Lines' }, { 'co', 'Alpha', desc = 'Alpha' }, { 'cr', 'Telescope reloader', desc = 'Reload Module' }, --edit { 'ea', 'b#', desc = 'Alternate File' }, { 'ec', 'e $MYVIMRC', desc = 'Config' }, { 'ed', 'lua require("telescope.builtin").find_files({cwd = vim.fn.stdpath("config")})', desc = 'Config Dir', }, { 'ee', 'NvimTreeToggle', desc = 'Explorer' }, { 'em', 'e README.md', desc = 'Readme' }, { 'en', 'enew', desc = 'New File' }, -- split { 's+', 'resize +10', desc = 'Increase window height' }, { 's-', 'vertical resize -20', desc = 'Decrease window width' }, { 's/', 's', desc = 'Split Below' }, { 's=', 'vertical resize +20', desc = 'Increase window width' }, { 'sH', 'vertical resize -10', desc = 'Decrease window width' }, { 'sJ', 'resize -5', desc = 'Decrease window height' }, { 'sK', 'resize +5', desc = 'Increase window height' }, { 'sL', 'vertical resize +10', desc = 'Increase window width' }, { 's\\', 'v', desc = 'Split Right' }, { 's_', 'resize -10', desc = 'Decrease window height' }, { 's`', 'p', desc = 'Previous Window' }, { 'sa', 'split', desc = 'Horizontal Split' }, { 'sc', 'tabclose', desc = 'Close Tab' }, { 'sf', 'tabfirst', desc = 'First Tab' }, { 'sh', 'h', desc = 'Move Left' }, { 'sj', 'j', desc = 'Move Down' }, { 'sk', 'k', desc = 'Move Up' }, { 'sl', 'l', desc = 'Move Right' }, { 'sp', 'NavigatorPrevious', desc = 'Previous Pane' }, { 'sq', 'c', desc = 'Close Split' }, { 'ss', 'vsplit', desc = 'Vertical Split' }, -- select { 'vB', 'vab', desc = 'Around Bracket' }, { 'vP', 'vap', desc = 'Around Para' }, { 'vQ', 'vaq', desc = 'Around Quote' }, { 'vb', 'vib', desc = 'Bracket' }, { 'vp', 'vip', desc = 'Paragraph' }, { 'vq', 'viq', desc = 'Quote' }, -- writing { 'wc', 'set spell!', desc = 'Spellcheck' }, { 'wf', "lua require'utils'.sudo_write()", desc = 'Force Write' }, { 'wj', ']s', desc = 'Next Misspell' }, { 'wk', '[s', desc = 'Prev Misspell' }, { 'wq', 'wq', desc = 'Write and Quit' }, { 'ws', 'Telescope spell_suggest', desc = 'Suggestions' }, { 'ww', 'w', desc = 'Write and Quit' }, { 'x', 'x', desc = ' Save and Quit' }, --quit { 'qa', 'qall', desc = 'Quit All' }, { 'qc', 'bw', desc = 'Close Buffer' }, { 'qd', 'bdelete', desc = 'Delete Buffer' }, { 'qf', 'qall!', desc = 'Force Quit' }, { 'qo', ':%bdelete|b#|bdelete#', desc = 'Close Others' }, { 'qq', 'q', desc = 'Quit' }, { 'qs', 'c', desc = 'Close Split' }, { 'qw', 'wq', desc = 'Write and Quit' }, -- insert { 'iP', 'put %:p', desc = 'Absolute Path' }, { 'id', "put =strftime('## %a, %d %b, %Y, %r')", desc = 'Date' }, { 'ie', 'Telescope symbols', desc = 'Emojis' }, { 'if', "put =expand('%:t')", desc = 'File Name' }, { 'in', 'Nerdy', desc = 'Nerd Glyphs' }, { 'ip', 'put %', desc = 'Relative Path' }, { 'ir', 'Telescope registers', desc = 'Registers' }, { 'it', "put =strftime('## %r')", desc = 'Time' }, -- Visiual Mode { 'cS', ':sort!', mode = 'v', desc = 'Sort Desc' }, { 'ci', ':sort i', mode = 'v', desc = 'Sort Case Insensitive' }, { 'cs', ':sort', mode = 'v', desc = 'Sort Asc' }, { 'cu', ':!uniq', mode = 'v', desc = 'Unique' }, { 'la', mode = 'v', desc = 'Lspsaga range_code_action' }, -- no leader { '[B', 'bfirst', desc = 'First Buffer' }, { '[b', 'bprevious', desc = 'Buffer' }, { '[d', 'Lspsaga diagnostic_jump_prev', desc = 'Diagnostic' }, { '[e', 'g;', desc = 'Edit' }, { '[j', '', desc = 'Jump' }, { ']', group = ' Next' }, { ']B', 'blast', desc = 'Buffer' }, { ']b', 'bnext', desc = 'Buffer' }, { ']d', 'Lspsaga diagnostic_jump_next', desc = 'Diagnostic' }, { ']e', 'g,', desc = 'Edit' }, { ']j', '', desc = 'Jump' }, { '', 'resize -10', desc = 'Decrease window height' }, { '', 'vertical resize -10', desc = 'Decrease window width' }, { '', 'vertical resize +10', desc = 'Increase window width' }, { '', 'resize +10', desc = 'Increase window height' }, { '', 'Telescope find_files', desc = 'Find Files' }, { '', 'Telescope file_browser', desc = 'Find browser' }, { '', 'h', desc = 'Move Left' }, { '', 'j', desc = 'Move Down' }, { '', 'k', desc = 'Move Up' }, { '', 'l', desc = 'Move Right' }, { '', 'p', desc = 'Previous Pane' }, { '', 'bprevious', desc = 'Previous Buffer' }, { '', 'bnext', desc = 'Next Buffer' }, { 'K', 'Lspsaga hover_doc', desc = 'LSP Hover' }, { 'Q', 'qall!', desc = 'Force Quit!' }, { 'U', 'redo', desc = 'Redo' }, }, }