local map = vim.keymap.set -- Space as leader key (must be set before lazy loads plugins) vim.g.mapleader = " " vim.g.maplocalleader = " " -- ── File ──────────────────────────────────────────────────────────────────── map("n", "w", "w", { desc = "Save file" }) map("n", "q", "q", { desc = "Quit" }) map("n", "Q", "qa", { desc = "Quit all" }) -- ── Buffers ───────────────────────────────────────────────────────────────── map("n", "", "bnext", { desc = "Next buffer" }) map("n", "", "bprev", { desc = "Prev buffer" }) map("n", "x", "bd", { desc = "Close buffer" }) -- ── Window navigation (Ctrl + hjkl) ───────────────────────────────────────── map("n", "", "h", { desc = "Window left" }) map("n", "", "j", { desc = "Window down" }) map("n", "", "k", { desc = "Window up" }) map("n", "", "l", { desc = "Window right" }) -- ── Editing quality of life ────────────────────────────────────────────────── map("i", "jk", "", { desc = "Exit insert mode" }) -- quick escape map("n", "", "nohl", { desc = "Clear search highlight" }) -- Keep indent when tabbing in visual mode map("v", "<", "", ">gv") -- Move selected lines up/down map("v", "", ":m '>+1gv=gv", { desc = "Move selection down" }) map("v", "", ":m '<-2gv=gv", { desc = "Move selection up" })