vim.g.mapleader = ' ' vim.g.maplocalleader = ' ' vim.keymap.set({ 'n', 'v' }, '', '', { silent = true }) local opts = { noremap = true, silent = true } -- Improvement to up and down movements vim.keymap.set('n', '', 'zz', opts) vim.keymap.set('n', '', 'zz', opts) -- Resize with arrows vim.keymap.set('n', '', ':resize -2', opts) vim.keymap.set('n', '', ':resize +2', opts) vim.keymap.set('n', '', ':vertical resize -2', opts) vim.keymap.set('n', '', ':vertical resize +2', opts) -- Window management vim.keymap.set('n', 'vs', 'v', { desc = 'Split window vertically' }) -- split window vertically vim.keymap.set('n', 'hs', 's', { desc = 'Split window horizontally' }) -- split window horizontally vim.keymap.set('n', 'es', '=', { desc = 'Equalize splits' }) -- make split windows equal width & height vim.keymap.set('n', 'xs', ':close', { desc = 'Close split' }) -- close current split window -- Navigate between splits vim.keymap.set('n', '', ':wincmd k', opts) vim.keymap.set('n', '', ':wincmd j', opts) vim.keymap.set('n', '', ':wincmd h', opts) vim.keymap.set('n', '', ':wincmd l', opts) -- Toggle line wrapping vim.keymap.set('n', 'lw', 'set wrap!', opts) -- Stay in indent mode vim.keymap.set('v', '<', '', '>gv', opts) -- Diagnostic keymaps vim.keymap.set('n', '[d', vim.diagnostic.goto_prev, { desc = 'Go to previous diagnostic message' }) vim.keymap.set('n', ']d', vim.diagnostic.goto_next, { desc = 'Go to next diagnostic message' }) vim.keymap.set('n', 'd', vim.diagnostic.open_float, { desc = 'Open floating diagnostic message' }) vim.keymap.set('n', 'q', vim.diagnostic.setloclist, { desc = 'Open diagnostics list' }) -- Greatest remap ever vim.keymap.set("x", "p", [["_dP]], { desc = 'Paste previously yanked' })