vim.g.mapleader = " " vim.g.maplocalleader = " " local wk = require("which-key") wk.register({ e = { name = "file explorers", e = {vim.cmd.NvimTreeOpen, "NvimTree"}, r = {vim.cmd.NERDTreeTabsOpen, "NERDTree"}, w = {vim.cmd.Ex, "netrw"}, }, t = { name = "Tabs", n = {vim.cmd.tabedit, "New"}, c = {vim.cmd.tabclose, "Close"}, l = {vim.cmd.tabnext, "Next"}, h = {vim.cmd.tabprevious, "Previous"}, t = {"tabedit ", "Open File"}, }, w = { name = "workspace", w = {"w", "Write"} }, v = { name = "LSP" }, q = { name = "Quit", q = {"q!", "Confirm"}, }, u = {"vim.cmd.UndotreeToggle", "UndoTree"}, b = { name = "Buffer", h = {"BufferPrevious", "Previous"}, l = {"BufferNext", "Next"}, H = {"BufferFirst", "First"}, L = {"BufferLast", "Last"}, p = {"BufferPin", "Pin"}, b = {"BufferPick", "Picker"}, s = { name = "Sort", n = {"BufferOrderByBufferNumber", "By BufferNumber"}, d = {"BufferOrderByDirectory", "By Directory"}, l = {"BufferOrderByLanguage", "By Language"}, w = {"BufferOrderByWindowNumber", "By WindowNumber"}, }, C = {"BufferClose", "Close"}, c = { c = {"BufferClose", "Close"}, w = {"BufferWipeout", "Wipe"}, a = {"BufferCloseAllButCurrent", "Close but Current"}, p = {"BufferCloseAllButPinned", "Close but Pinned"}, }, }, f = { name = "Telescope & fzf", }, s = { name = "Settings", c = {function () vim.opt.scrolloff = 100 end, "Always center cursor"}, x = {function () vim.opt.scrolloff = 8 end, "Disable Cursor center"} }, h = { name = "Hop", w = {"HopWord", "Word"}, a = {"HopAnywhere", "Anywhere"}, l = {"HopLine", "Line"}, p = {"HopPattern", "Pattern"}, c = {"HopChar1", "Char1"}, x = {"HopChar2", "Char2"}, }, d = { name = "Debug" }, r = { name = "Rust", }, }, {prefix = ""}) -- Buffers vim.keymap.set("n", "b<", "BufferMovePrevious", { desc = "move previous" }) vim.keymap.set("n", "b>", "BufferMoveNext", { desc = "move next" }) vim.keymap.set("n", "bH", "BufferFirst", { desc = "first" }) vim.keymap.set("n", "bs1", "BufferGoto 1", { desc = "1" }) vim.keymap.set("n", "bs2", "BufferGoto 2", { desc = "2" }) vim.keymap.set("n", "bs3", "BufferGoto 3", { desc = "3" }) vim.keymap.set("n", "bs4", "BufferGoto 4", { desc = "4" }) vim.keymap.set("n", "bs5", "BufferGoto 5", { desc = "5" }) vim.keymap.set("n", "bs6", "BufferGoto 6", { desc = "6" }) vim.keymap.set("n", "bs7", "BufferGoto 7", { desc = "7" }) vim.keymap.set("n", "bs8", "BufferGoto 8", { desc = "8" }) vim.keymap.set("n", "bs9", "BufferGoto 9", { desc = "9" }) -- LSP vim.keymap.set("n", "gd", function() vim.lsp.buf.definition() end, {buffer = bufnr, desc = "goto definition"}) vim.keymap.set("n", "K", function() vim.lsp.buf.hover() end, {buffer = bufnr}) vim.keymap.set("n", "vw", function() vim.lsp.buf.workspace_symbol() end, {buffer = bufnr, desc = "workspace symbol"}) vim.keymap.set("n", "vd", function() vim.diagnostic.open_float() end, {buffer = bufnr, desc = "diagnostics"}) vim.keymap.set("n", "[d", function() vim.diagnostic.goto_next() end, {buffer = bufnr, desc = "goto next"}) vim.keymap.set("n", "]d", function() vim.diagnostic.goto_prev() end, {buffer = bufnr, desc = "goto prev"}) vim.keymap.set("n", "va", function() vim.lsp.buf.code_action() end, {buffer = bufnr, desc = "code actions"}) vim.keymap.set("n", "vr", function() vim.lsp.buf.references() end, {buffer = bufnr, desc = "references"}) vim.keymap.set("n", "vn", function() vim.lsp.buf.rename() end, {buffer = bufnr, desc = "rename"}) -- vim.keymap.set("i", "", function() vim.lsp.buf.signature_help() end, {buffer = bufnr}) vim.keymap.set("n", "vh", function () vim.lsp.buf.hover() end, {buffer=bufnr, desc = "show hover action"}) vim.keymap.set("i", "", function () vim.lsp.buf.hover() end, {buffer=bufnr}) -- debug vim.keymap.set("n", "db", function() require"dap".toggle_breakpoint() end, {desc = "toggle breapoint"}) vim.keymap.set("n", "dc", function() require("dap").continue() end, {desc = "launch or continue execution"}) vim.keymap.set("n", "dsi", function() require("dap").step_into() end, {desc = "step into"}) vim.keymap.set("n", "dso", function() require("dap").step_over() end, {desc = "step over"}) vim.keymap.set("n", "dr", function() require("dap").repl.open() end, {desc = "open repl"}) -- debug UI vim.keymap.set("n", "dwb", function() require("dapui").float_element("breakpoints", {}) end, {desc = "open breakpoints window"}) vim.keymap.set("n", "dwc", function() require("dapui").float_element("console", {}) end, {desc = "open integrated console"}) vim.keymap.set("n", "dwr", function() require("dapui").float_element("repl", {}) end, {desc = "open repl"}) -- term vim.keymap.set("n", "", vim.cmd.ToggleTerm) vim.keymap.set("t", "", vim.cmd.ToggleTerm) -- magic vim.keymap.set("n", "s", ":%s/\\<\\>//gI", {desc = "find and replace"}) -- center vim.keymap.set("n", "", "zz") vim.keymap.set("n", "", "zz") vim.keymap.set("n", "n", "nzzzv") vim.keymap.set("n", "N", "Nzzzv") -- random vim.keymap.set("v", "J", ':m ">+1gv=gv') vim.keymap.set("v", "K", ':m "<-2gv=gv') vim.keymap.set("i", "", "")