vim.g.mapleader = " " local keymap = vim.keymap -- General keymaps -- keymap.set("i", "jk", "", { desc = "Exit insert mode eith jk" }) -- keymap.set("i", "ii", "", { desc = "exit insert mode with ii" }) keymap.set("n", "", ":nohl", { desc = "Clear search highlights" }) keymap.set("n", "n", "o", { desc = "Add new line" }) keymap.set("n", "N", "O", { desc = "Add new line above" }) -- File saves and exits -- keymap.set("n", "wq", ":wq", { desc = "save and quit" }) -- keymap.set("n", "wqa", ":wqa", { desc = "save all and quit" }) -- keymap.set("n", "qq", ":q!", { desc = "quit without saving" }) -- keymap.set("n", "ww", ":w", { desc = "save" }) -- increment/decrement numbers keymap.set("n", "+", "", { desc = "Incrment number by 1" }) keymap.set("n", "-", "", { desc = "Decrment number by 1" }) -- Split window management keymap.set("n", "sv", "v", { desc = "Split window vertically" }) keymap.set("n", "sh", "s", { desc = "Split window horizontally" }) keymap.set("n", "se", "=", { desc = "Make splits equal size" }) keymap.set("n", "sx", "close", { desc = "Close current split" }) keymap.set("n", "", "-", { desc = "make split window height shorter" }) keymap.set("n", "", "+", { desc = "make split windows height taller" }) keymap.set("n", "", "3>", { desc = "make split windows width bigger" }) keymap.set("n", "", "3<", { desc = "make split windows width smaller" }) keymap.set("n", "", "", { desc = "Move to left split" }) keymap.set("n", "", "", { desc = "Move to right split" }) keymap.set("n", "", "", { desc = "Move to top split" }) keymap.set("n", "", "", { desc = "Move to bottom split" }) -- Tab management keymap.set("n", "to", "tabnew", { desc = "Open new tab" }) -- open new tab keymap.set("n", "tx", "tabclose", { desc = "Close current tab" }) -- close current tab keymap.set("n", "tn", "tabn", { desc = "Go to next tab" }) -- go to next tab keymap.set("n", "tp", "tabp", { desc = "Go to previous tab" }) -- go to previous tab keymap.set("n", "tf", "tabnew %", { desc = "Open current buffer in new tab" }) -- move current buffer to new tab keymap.set("n", "sm", ":MaximizerToggle", { desc = "toggle maximize tab" }) -- Diff keymaps keymap.set("n", "cc", ":diffput", { desc = "put diff from current to other during diff" }) keymap.set("n", "cj", ":diffget 1", { desc = "get diff from left (local) during merge" }) keymap.set("n", "ck", ":diffget 3", { desc = "get diff from right (remote) during merge" }) keymap.set("n", "cn", "]c", { desc = "next diff hunk" }) keymap.set("n", "cp", "[c", { desc = "previous diff hunk" }) -- Quickfix keymaps keymap.set("n", "qo", ":copen", { desc = "open quickfix list" }) keymap.set("n", "qf", ":cfirst", { desc = "jump to first quickfix list item" }) keymap.set("n", "qn", ":cnext", { desc = "jump to next quickfix list item" }) keymap.set("n", "qp", ":cprev", { desc = "jump to prev quickfix list item" }) keymap.set("n", "ql", ":clast", { desc = "jump to last quickfix list item" }) keymap.set("n", "qc", ":cclose", { desc = "close quickfix list" }) -- Nvim-tree keymap.set("n", "ee", ":NvimTreeToggle", { desc = "toggle file explorer" }) keymap.set("n", "er", ":NvimTreeFocus", { desc = "toggle focus to file explorer" }) keymap.set("n", "ef", ":NvimTreeFindFile", { desc = "find file in file explorer" }) -- Telescope keymap.set("n", "ff", "Telescope find_files", { desc = "Find files" }) keymap.set("n", "fg", "Telescope live_grep", { desc = "Live grep" }) keymap.set("n", "fb", "Telescope buffers", { desc = "Find buffers" }) keymap.set("n", "fh", "Telescope help_tags", { desc = "Help tags" }) keymap.set("n", "fs", "Telescope current_buffer_fuzzy_find", { desc = "Fuzzy find current buffer" }) keymap.set("n", "fo", "Telescope lsp_document_symbols", { desc = "Lsp document symbols" }) keymap.set("n", "fi", "Telescope lsp_incoming_calls", { desc = "Lsp incoming calls" }) keymap.set("n", "fm", function() require("telescope.builtin").treesitter({ default_text = "" }) end, { desc = "Telescope treesitter" }) -- LSP keymap.set("n", "gg", "lua vim.lsp.buf.hover()") keymap.set("n", "gd", "lua vim.lsp.buf.definition()") keymap.set("n", "gD", "lua vim.lsp.buf.declaration()") keymap.set("n", "gi", "lua vim.lsp.buf.implementation()") keymap.set("n", "gt", "lua vim.lsp.buf.type_definition()") keymap.set("n", "gr", "lua vim.lsp.buf.references()") keymap.set("n", "gs", "lua vim.lsp.buf.signature_help()") keymap.set("n", "rr", "lua vim.lsp.buf.rename()") keymap.set("n", "gf", "lua vim.lsp.buf.format({async = true})") keymap.set("v", "gf", "lua vim.lsp.buf.format({async = true})") keymap.set("n", "ga", "lua vim.lsp.buf.code_action()") keymap.set("n", "gl", "lua vim.diagnostic.open_float()") keymap.set("n", "gp", "lua vim.diagnostic.goto_prev()") keymap.set("n", "gn", "lua vim.diagnostic.goto_next()") keymap.set("n", "tr", "lua vim.lsp.buf.document_symbol()") keymap.set("i", "", "lua vim.lsp.buf.completion()") -- Database keymap.set("n", "db", function() vim.cmd("tabnew") vim.cmd("DBUIToggle") end, { desc = "Open dadbod in new tab" }) keymap.set("n", "dt", function() vim.cmd("DBUIToggle") end, { desc = "Toggle dabase ui" }) keymap.set("n", "da", function() vim.cmd("DBUIAddConnection") end, { desc = "Add new database connection" }) -- Aerial keymap.set("n", "a", "AerialToggle!", { desc = "Toggle aerial (symbols)" })