-- [[ Basic Keymaps ]] -- Keymaps for better default experience -- See `:help vim.keymap.set()` vim.keymap.set("v", "J", ":m '>+1gv=gv", { desc = 'Moves Line Down' }) vim.keymap.set("v", "K", ":m '<-2gv=gv", { desc = 'Moves Line Up' }) vim.keymap.set("n", "", "zz", { desc = 'Scroll Down' }) vim.keymap.set("n", "", "zz", { desc = 'Scroll Up' }) vim.keymap.set("n", "n", "nzzzv", { desc = 'Next Search Result' }) vim.keymap.set("n", "N", "Nzzzv", { desc = 'Previous Search Result' }) -- Remap for dealing with word wrap 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 }) -- Diagnostic keymaps vim.keymap.set('n', 'e', vim.diagnostic.open_float, { desc = 'Open floating diagnostic message' }) vim.keymap.set('n', 'q', vim.diagnostic.setloclist, { desc = 'Open diagnostics list' }) vim.keymap.set('n', '[d', function() vim.diagnostic.jump({ count = -1, float = true }) end, { desc = 'Go to previous diagnostic' }) vim.keymap.set('n', ']d', function() vim.diagnostic.jump({ count = 1, float = true }) end, { desc = 'Go to next diagnostic' }) -- moving between splits vim.keymap.set('n', '', 'h', { desc = 'move to right split' }) vim.keymap.set('n', '', 'j', { desc = 'move to below split' }) vim.keymap.set('n', '', 'k', { desc = 'move to above split' }) vim.keymap.set('n', '', 'l', { desc = 'move to left split' }) -- You should instead use these keybindings so that they are still easy to use, but dont conflict vim.keymap.set({ "v", "x", "n" }, 'y', '"+y', { noremap = true, silent = true, desc = 'Yank to clipboard' }) vim.keymap.set({ "n", "v", "x" }, 'Y', '"+yy', { noremap = true, silent = true, desc = 'Yank line to clipboard' }) vim.keymap.set({ 'n', 'v', 'x' }, 'p', '"+p', { noremap = true, silent = true, desc = 'Paste from clipboard' }) vim.keymap.set('i', '', '+', { noremap = true, silent = true, desc = 'Paste from clipboard from within insert mode' }) vim.keymap.set("x", "P", '"_dP', { noremap = true, silent = true, desc = 'Paste over selection without erasing unnamed register' })