local function easymap(mode, lhs, rhs, desc) vim.keymap.set(mode, lhs, rhs, { desc = desc }) end -- Remove some bogus default keymaps vim.keymap.set({ "n", "v", "i" }, "", "") -- ########################################################################## -- -- -Leader -- ########################################################################## -- easymap("n", "o", "occ", "New Line, No Comment") easymap("n", "O", "Occ", "New Line, No Comment") easymap("n", "k", ":SafeBD", "Close Buffer") easymap("n", "q", ":silent! wa! | silent! qa!", "Quit") easymap("n", ";", "q:", "Elite Cmd") easymap("n", "f", ":Format", "Format") easymap("n", "h", ":nohl", "Remove Highlights") easymap("n", "p", ":Telescope registers", "Registers") easymap("n", "", ":Telescope find_files", "Files") easymap("n", ",", ":Telescope current_folder", "Search Current Folder") easymap("n", "m", ':exe "resize ".float2nr(&lines*0.8)', "80% Window") -- easymap("n", "s", ":Scratch", "Scratch") easymap("n", ".", ":Telescope all_files", "All Files") easymap("n", "gri", function() vim.lsp.inlay_hint.enable(not vim.lsp.inlay_hint.is_enabled({ 0 }), { 0 }) end, "Toggle Inlay Hints") easymap("n", "lt", function() local on = vim.g.blink_cmp_enabled ~= false vim.g.blink_cmp_enabled = not on vim.notify("blink.cmp " .. (vim.g.blink_cmp_enabled and "on" or "off")) end, "Toggle Completion") for i = 1, 9 do easymap("n", "" .. i, i .. "gt", "Tab " .. i) end --- Buffer easymap("n", "b", "Buffers") easymap("n", "b,", ":Telescope buffers", "Telescope Buffers") easymap("n", "bb", ":e #", "Last Buffer") -- ########################################################################## -- -- -Built in Lsp -- ########################################################################## -- vim.keymap.set("n", "l", "", { desc = "LSP" }) vim.keymap.set("n", "lr", ":LspRestart", { desc = "Restart" }) vim.keymap.set("n", "lm", ":Mason", { desc = "Mason" }) vim.keymap.set("n", "ls", ":Telescope lsp_document_symbols", { desc = "Document Symbols" }) vim.keymap.set("n", "lw", ":Telescope lsp_workspace_symbols", { desc = "Workspace Symbols" }) vim.keymap.set("n", "lc", function() vim.cmd([[ if empty(filter(getwininfo(), 'v:val.quickfix')) copen else cclose endif ]]) end, { desc = "Toggle Quickfix" }) vim.keymap.set("n", "le", function() vim.diagnostic.setqflist({ severity = vim.diagnostic.severity.ERROR }) end, { desc = "Quickfix All Errors" }) vim.keymap.set("n", "ld", function() vim.diagnostic.setqflist() end, { desc = "Quickfix All Diagnostics" }) vim.keymap.set("n", "lb", function() local diagnostics = vim.diagnostic.get(0) local qflist = vim.diagnostic.toqflist(diagnostics) vim.fn.setqflist(qflist, "r") if #diagnostics == 0 then vim.cmd("cclose") return end vim.cmd("copen") end, { desc = "Quickfix Buf Diagnostics" }) -- ########################################################################## -- -- -Visual Mode Leaders -- ########################################################################## -- easymap("v", "s", ":s/\\%V[A-Z]/_\\L&/g | nohl ", "snake_case") easymap("v", "c", ":s/\\%V_\\(\\w\\)/\\U\\1/g | nohl ", "camelCase") easymap("v", "n", ":g/^ *$/d | nohl ", "Remove Blank Lines") -- ########################################################################## -- -- -Diagnostics -- ########################################################################## -- easymap("n", "da", ":Telescope diagnostics", "All Diagnostics") easymap("n", "de", ":Telescope diagnostics severity=error", "Error Diagnostics") -- ########################################################################## -- -- -Telescope -- ########################################################################## -- easymap("n", "t", "", "Telescope") easymap("n", "ts", ":Telescope treesitter", "Treesitter") -- ########################################################################## -- -- -Folding -- ########################################################################## -- easymap("n", "z", "", "Fold") easymap("n", "zt", ":TreeSitterFold", "Treesitter") easymap("n", "zi", ":IndentFold", "Indent") easymap("n", "zs", ":SyntaxFold", "Syntax") -- ########################################################################## -- -- -Windows -- ########################################################################## -- easymap({ "i", "n" }, "", "h") easymap({ "i", "n" }, "", "j") easymap({ "i", "n" }, "", "k") easymap({ "i", "n" }, "", "l") easymap({ "i", "n" }, "", "h") easymap({ "i", "n" }, "", "j") easymap({ "i", "n" }, "", "k") easymap({ "i", "n" }, "", "l") vim.keymap.set("n", "", ":vertical resize -2") vim.keymap.set("n", "", ":vertical resize +2") vim.keymap.set("n", "", ":resize -2") vim.keymap.set("n", "", ":resize +2") -- ########################################################################## -- -- -Gotos -- ########################################################################## -- easymap("n", "gd", vim.lsp.buf.definition, "Goto Definition") easymap("n", "gD", vim.lsp.buf.type_definition, "Goto Type Definition") easymap({ "n", "v" }, "gy", '"+y', "System Clipboard Copy") easymap({ "n", "v" }, "gp", '"+p', "System Clipboard Paste") easymap("n", "gs", "EditCurrentFiletype", "Filetype Settings") easymap("n", "gm", "q:?make", "Last Make") easymap("n", "g;", "m'A;`'", "Append Colon") easymap("n", "g,", "m'A,`'", "Append Comma") easymap("n", "gl", "", "LSP") easymap("n", "glt", ":ToggleDiagnostics", "Toggle") vim.keymap.set("n", "gc", require("telescope.builtin").grep_string, { desc= "Telescope word"}) -- ########################################################################## -- -- Surroundings -- ########################################################################## -- vim.keymap.set({ "x", "o" }, "ae", ":normal! ggVG", { desc = "around entire buffer" }) -- ########################################################################## -- -- -Visual Line Motion (respect wrap) -- ########################################################################## -- vim.keymap.set({ "n", "v" }, "j", "v:count == 0 ? 'gj' : 'j'", { expr = true, silent = true }) vim.keymap.set({ "n", "v" }, "k", "v:count == 0 ? 'gk' : 'k'", { expr = true, silent = true }) -- Extras easymap({ "i", "n" }, "", "w", "Save") easymap({ "i", "n" }, "", vim.diagnostic.open_float, "Open Diagnostic Float") -- easymap("n", ";", "A;", "Add ; to the end") -- easymap("n", ",", "A,", "Add , to the end")