vim.g.mapleader = ' ' vim.g.maplocalleader = ' ' vim.g.have_nerd_font = true vim.keymap.set('n', '', 'nohlsearch') vim.keymap.set('n', 'q', vim.diagnostic.setqflist, { desc = 'Open diagnostic [Q]uickfix list' }) vim.keymap.set('t', '', '', { desc = 'Exit terminal mode' }) -- Disables as a normal/visual key, so it only works as leader vim.keymap.set({ 'n', 'v' }, '', '', { silent = true }) -- Remap jk to esc vim.keymap.set({ 'n', 'v', 'i' }, 'jk', '') vim.keymap.set('t', 'jk', '') -- Quickly remove search highlight with (now ) vim.keymap.set('n', '', ':noh', { desc = 'Remove search highlight' }) -- Makes 'j'/'k' move by visual lines when no count is given vim.keymap.set('n', 'k', "v:count == 0 ? 'gk' : 'k'", { expr = true, silent = true }) vim.keymap.set('n', 'j', "v:count == 0 ? 'gj' : 'j'", { expr = true, silent = true }) -- Move cursor right/left in insert mode with Ctrl+l/h. vim.keymap.set('i', '', '', { desc = 'Move to right on insert mode' }) vim.keymap.set('i', '', '', { desc = 'Move to left on insert mode' }) vim.keymap.set('i', '', '', { desc = 'Move to down on insert mode' }) vim.keymap.set('i', '', '', { desc = 'Move to Up on insert mode' }) -- Move selected lines up/down in visual mode with J/K. vim.keymap.set('v', 'J', ":m '>+1gv=gv") vim.keymap.set('v', 'K', ":m '<-2gv=gv") -- Scroll half-page down/up and center cursor. vim.keymap.set('n', '', 'zz') vim.keymap.set('n', '', 'zz') -- Next/previous search result and center cursor. vim.keymap.set('n', 'n', 'nzzzv') vim.keymap.set('n', 'N', 'Nzzzv') -- Paste over selection without overwriting the default register. vim.keymap.set('x', 'p', [["_dP]]) -- Delete to black hole register (doesn't overwrite yank buffer). vim.keymap.set({ 'n', 'v' }, 'd', [["_d]]) -- In insert mode, Ctrl+c acts as . vim.keymap.set('i', '', '') -- Diagnostic navigation vim.keymap.set('n', ']d', vim.diagnostic.goto_next, { desc = 'Next [D]iagnostic' }) vim.keymap.set('n', '[d', vim.diagnostic.goto_prev, { desc = 'Previous [D]iagnostic' }) -- Buffer navigation vim.keymap.set('n', ']b', 'bnext', { desc = 'Next [B]uffer' }) vim.keymap.set('n', '[b', 'bprev', { desc = 'Previous [B]uffer' }) -- Quickfix navigation vim.keymap.set('n', ']q', 'cnext', { desc = 'Next [Q]uickfix' }) vim.keymap.set('n', '[q', 'cprev', { desc = 'Previous [Q]uickfix' })