dotfiles/nvim/lua/keymaps.lua
Mats Ricardo Nomedal a11473e308 initial dotfiles
2026-04-23 23:48:01 +02:00

33 lines
1.9 KiB
Lua

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", "<leader>w", "<cmd>w<cr>", { desc = "Save file" })
map("n", "<leader>q", "<cmd>q<cr>", { desc = "Quit" })
map("n", "<leader>Q", "<cmd>qa<cr>", { desc = "Quit all" })
-- ── Buffers ─────────────────────────────────────────────────────────────────
map("n", "<S-l>", "<cmd>bnext<cr>", { desc = "Next buffer" })
map("n", "<S-h>", "<cmd>bprev<cr>", { desc = "Prev buffer" })
map("n", "<leader>x", "<cmd>bd<cr>", { desc = "Close buffer" })
-- ── Window navigation (Ctrl + hjkl) ─────────────────────────────────────────
map("n", "<C-h>", "<C-w>h", { desc = "Window left" })
map("n", "<C-j>", "<C-w>j", { desc = "Window down" })
map("n", "<C-k>", "<C-w>k", { desc = "Window up" })
map("n", "<C-l>", "<C-w>l", { desc = "Window right" })
-- ── Editing quality of life ──────────────────────────────────────────────────
map("i", "jk", "<Esc>", { desc = "Exit insert mode" }) -- quick escape
map("n", "<Esc>", "<cmd>nohl<cr>", { desc = "Clear search highlight" })
-- Keep indent when tabbing in visual mode
map("v", "<", "<gv")
map("v", ">", ">gv")
-- Move selected lines up/down
map("v", "<A-j>", ":m '>+1<cr>gv=gv", { desc = "Move selection down" })
map("v", "<A-k>", ":m '<-2<cr>gv=gv", { desc = "Move selection up" })