vim.g.mapleader = " " vim.g.maplocalleader = " " local map = vim.keymap.set -- Better window navigation map("n", "", "h", { desc = "Go to left window" }) map("n", "", "j", { desc = "Go to lower window" }) map("n", "", "k", { desc = "Go to upper window" }) map("n", "", "l", { desc = "Go to right window" }) -- Resize windows map("n", "", ":resize +2", { desc = "Increase window height" }) map("n", "", ":resize -2", { desc = "Decrease window height" }) map("n", "", ":vertical resize -2", { desc = "Decrease window width" }) map("n", "", ":vertical resize +2", { desc = "Increase window width" }) -- Buffers map("n", "", ":bnext", { desc = "Next buffer" }) map("n", "", ":bprevious", { desc = "Previous buffer" }) map("n", "bd", ":bdelete", { desc = "Delete buffer" }) -- Move lines up/down in visual mode map("v", "J", ":m '>+1gv=gv", { desc = "Move selection down" }) map("v", "K", ":m '<-2gv=gv", { desc = "Move selection up" }) -- Keep cursor centered when scrolling map("n", "", "zz") map("n", "", "zz") -- Keep cursor centered on search results map("n", "n", "nzzzv") map("n", "N", "Nzzzv") -- Clear search highlight map("n", "", ":nohlsearch", { desc = "Clear search highlight" }) -- Better paste (don't override register) map("x", "p", '"_dP', { desc = "Paste without overwriting register" }) -- Save file map("n", "", ":w", { desc = "Save file" }) -- Diagnostic navigation map("n", "[d", vim.diagnostic.goto_prev, { desc = "Previous diagnostic" }) map("n", "]d", vim.diagnostic.goto_next, { desc = "Next diagnostic" }) map("n", "e", vim.diagnostic.open_float, { desc = "Show diagnostic" })