local map = vim.keymap.set -- Better window navigation map("n", "|", "v", { desc = "Vertical split" }) map("n", "-", "s", { desc = "Horizontal split" }) map("n", "w", "q", { desc = "Close split" }) -- Buffer navigation map("n", "]b", "bnext", { desc = "Next buffer" }) map("n", "[b", "bprevious", { desc = "Prev buffer" }) map("n", "bd", "bdelete", { desc = "Delete buffer" }) map("n", "bo", "%bd|e#|bd#", { desc = "Close other buffers" }) -- Diagnostics map("n", "]d", vim.diagnostic.goto_next, { desc = "Next diagnostic" }) map("n", "[d", vim.diagnostic.goto_prev, { desc = "Prev diagnostic" }) -- Move lines map("v", "J", ":m '>+1gv=gv", { desc = "Move selection down" }) map("v", "K", ":m '<-2gv=gv", { desc = "Move selection up" }) -- Keep cursor centered map("n", "", "zz") map("n", "", "zz") map("n", "n", "nzzzv") map("n", "N", "Nzzzv") -- Clear search highlight map("n", "", "nohlsearch") -- Don't yank on paste in visual mode map("x", "p", '"_dP', { desc = "Paste without yanking" }) -- Better indenting map("v", "<", "", ">gv") -- Save map({ "n", "i" }, "", "w", { desc = "Save" }) -- Quit map("n", "q", "q", { desc = "Quit" }) map("n", "Q", "qa", { desc = "Quit all" }) -- Tab navigation map("n", "", "tabnext", { desc = "Next tab" }) map("n", "", "tabprevious", { desc = "Prev tab" })