local wk = require("which-key") local telescope = require('telescope.builtin') local marks = require('marks') -- the leader key is wk.add({ -- Telescope { "f", group = "Telescope" }, { "ff", telescope.find_files, desc = "Find files", mode = "n" }, { "fg", telescope.live_grep, desc = "Live grep", mode ="n"}, { "fb", telescope.buffers, desc = "Find in buffers", mode ="n"}, { "fc", telescope.current_buffer_fuzzy_find, desc = "Find in current buffer", mode ="n"}, { "fh", telescope.help_tags, desc = "Find in help tags", mode ="n"}, { "fm", telescope.marks, desc = "Find in marks", mode ="n"}, { "fr", telescope.resume, desc = "Resume last find", mode ="n"}, -- LspSaga { "l", group = "Lsp" }, { "lc", "Lspsaga code_action", desc = "Code Action", mode ="n"}, { "lo", "Lspsaga outline", desc = "Outline", mode ="n"}, { "lr", "Lspsaga rename", desc = "Rename", mode ="n"}, { "ld", "Lspsaga goto_definition", desc = "Lsp GoTo Definition", mode ="n"}, { "lf", "Lspsaga finder", desc = "Lsp Finder", mode ="n"}, { "lp", "Lspsaga peek_definition", desc = "Preview Definition", mode ="n"}, { "lw", "Lspsaga show_workspace_diagnostics", desc = "Show Workspace Diagnostics", mode ="n"}, { "lb", "Lspsaga show_buf_diagnostics", desc = "Show Buffer Diagnostics", mode ="n"}, { "lm", "TermExec cmd='lmsfixfile %:p:h' direction='float'", desc = "LMS fixer this file", mode ="n"}, -- UndoTree { "u", group = "UndoTree" }, { "uu", "lua require('undotree').toggle()", desc="Toggle undo tree", mode ="n"}, -- TagBar { "", ":TagbarToggle fj", desc="Toggle tagbar", mode ="n"}, -- Custom { "n", ":noh", desc="Remove highlight", mode = "n"}, -- Jump to definition in new tab { "", "tab split | lua vim.lsp.buf.definition()", desc="Definition in new tab", mode = "n"}, -- See error in diagnostic window { "e", "lua vim.diagnostic.open_float()", desc="See diagnostic", mode = "n"}, -- Closing stuff { "Z", group = "Closing"}, { "ZZ", "wq!", desc = "Write en close", mode = "n"}, { "ZQ", "q!", desc = "Close without write", mode = "n"}, -- Creating and browsing marks { "m", group = "Create / Jump mark"}, { "mx", marks.set, desc = "Set mark [x]", mode = "n"}, { "m,", marks.set_next, desc = "Set the next available alphabetical (lowercase) mark", mode = "n"}, { "m;", marks.toggle, desc = "Toggle the next available mark at the current line", mode = "n"}, { "m]", marks.next, desc = "Move to next mark", mode = "n"}, { "m[", marks.prev, desc = "Move to previous mark", mode = "n"}, { "m:", marks.preview, desc = "Preview mark. This will prompt you for a specific mark to preview; press to preview the next mark.", mode = "n"}, { "m[0-9]", marks.set_bookmark, desc = "Add a bookmark from bookmark group[0-9].", mode = "n"}, { "m}", marks.next_bookmark, desc = "Move to the next bookmark having the same type as the bookmark under the cursor. Works across buffers.", mode = "n"}, { "m{", marks.prev_bookmark, desc = "Move to the previous bookmark having the same type as the bookmark under the cursor. Works across buffers.", mode = "n"}, -- Deleting marks { "s", group = "Delete marks"}, { "dmx", marks.delete, desc = "Delete mark x", mode = "n"}, { "dm-", marks.delete_line, desc = "Delete all marks on the current line", mode = "n"}, { "dm", marks.delete_buf, desc = "Delete all marks in the current buffer", mode = "n"}, { "dm=", marks.delete_bookmark, desc = "Delete the bookmark under the cursor.", mode = "n"}, { "dm[0-9]", marks.delete_bookmark, desc = "Delete all bookmarks from bookmark group[0-9].", mode = "n"}, -- Git { "h", group = "Git"}, -- Tabs { "t", group = "Tabs"}, { "tf", "tabm 0", desc = "Move before first tab", mode = "n"}, { "tl", "tabm", desc = "Move after last tab", mode = "n"}, { "t,", "tabm -", desc = "Move tab to left", mode = "n"}, { "t.", "tabm +", desc = "Move tab to right", mode = "n"}, { "tn", "tabnext", desc = "Go to next tab", mode = "n"}, { "tp", "tabprevious", desc = "Go to previous tab", mode = "n"}, { "tb", "tabfirst", desc = "Go to first tab", mode = "n"}, { "te", "tablast", desc = "Go to last tab", mode = "n"}, { "to", "tabonly", desc = "Close all except current", mode = "n"}, -- Buffer { "b", group = "Buffers"}, { "bd", "Bufdel", desc = "Close open buffers", mode = "n"}, -- Indent { "i", group = "Indentation"}, { "it", "IBLToggle", desc = "Toggle indentation guides", mode = "n"}, { "im", "set list!", desc = "Toggle indentation characters", mode = "n"}, -- Navigation { "c", group = "Quick change directories"}, { "cr", "cd ~/lms/", desc = "Change to lms root", mode = "n"}, { "cc", "cd ~/lms/App/Lms/", desc = "Change to App/Lms", mode = "n"}, { "ct", "cd ~/lms/Tests/", desc = "Change to Tests", mode = "n"}, -- Commenting { "g", group = "Commenting"}, { "gcc", desc = "Toggles the current line using linewise comment", mode = "n"}, { "gbc", desc = "Toggles the current line using blockwise comment", mode = "n"}, { "gc", desc = "Toggles the region using linewise comment", mode = "v"}, { "gb", desc = "Toggles the region using blockwise comment", mode = "v"}, { "gb2}", desc = "Toggle until the 2 next blank line", mode = "n"}, { "gbaf", desc = "Toggle comment around a function (w/ LSP/treesitter support)", mode = "n"}, { "gbac", desc = "Toggle comment around a class (w/ LSP/treesitter support)", mode = "n"}, }) -- prevent using arrow keys or mouse vim.keymap.set('n', '', ':echoe "Yo retard use h"') vim.keymap.set('n', '', ':echoe "Yo retard use l"') vim.keymap.set('n', '', ':echoe "Yo retard use k"') vim.keymap.set('n', '', ':echoe "Yo retard use j"') vim.opt.mouse = '' -- dont automatically jump when searching vim.keymap.set('n', '*', '*```') -- show lsp floating tooltip vim.keymap.set('n', '', ':lua vim.lsp.buf.hover()') -- tab navigation using vim.keymap.set('n', '', ':BufferLineCycleNext') vim.keymap.set('n', '', ':BufferLineCyclePrev') -- quick close tab USE ZQ --vim.keymap.set('n', '', ':tabclose') -- jump to definition in new tab vim.keymap.set('n', '', 'tab split | lua vim.lsp.buf.definition()', {}) -- change split window vim.keymap.set('n', '', ':wincmd k') vim.keymap.set('n', '', ':wincmd j') vim.keymap.set('n', '', ':wincmd h') vim.keymap.set('n', '', ':wincmd l') -- move split to tab vim.keymap.set('n', '', ':tab split') -- open context menu vim.keymap.set("n", "", function() require("menu").open("default") end, {})