-- core/keymaps.lua - leader-based, plugin-free keymaps. local map = vim.keymap.set -- clear search highlight map("n", "", "nohlsearch", { desc = "clear highlight" }) -- save / quit map("n", "w", "write", { desc = "write" }) map("n", "q", "quit", { desc = "quit" }) map("n", "Q", "quitall", { desc = "quit all" }) -- window navigation (ctrl + hjkl) map("n", "", "h", { desc = "win left" }) map("n", "", "j", { desc = "win down" }) map("n", "", "k", { desc = "win up" }) map("n", "", "l", { desc = "win right" }) -- resize with arrows map("n", "", "resize +2") map("n", "", "resize -2") map("n", "", "vertical resize -2") map("n", "", "vertical resize +2") -- buffer cycling map("n", "", "bnext", { desc = "next buffer" }) map("n", "", "bprevious", { desc = "prev buffer" }) map("n", "bd", "bdelete", { desc = "delete buffer" }) -- keep cursor centered on jumps / search map("n", "", "zz") map("n", "", "zz") map("n", "n", "nzzzv") map("n", "N", "Nzzzv") -- move selected lines (visual) map("v", "J", ":m '>+1gv=gv", { desc = "move line down" }) map("v", "K", ":m '<-2gv=gv", { desc = "move line up" }) -- keep selection when indenting map("v", "<", "", ">gv") -- paste over selection without clobbering the register map("x", "p", [["_dP]], { desc = "paste no-yank" }) -- yank to system clipboard explicitly map({ "n", "v" }, "y", [["+y]], { desc = "yank to clipboard" }) -- quick edit/reload of config map("n", "ve", "edit $MYVIMRC", { desc = "edit config" }) -- sudo-write a file you opened without permissions (very ops-handy) map("n", "W", "w !sudo tee % >/dev/null", { desc = "sudo write" })