-- [[ Basic Keymaps ]] -- See `:help vim.keymap.set()` vim.keymap.set('i', 'jj', '') -- clear higlight on search on pressing in normal mode vim.keymap.set('n', '', 'nohlsearch') -- Diagnostic keymaps vim.keymap.set('n', '[d', function() vim.diagnostic.jump { count = -1 } end, { desc = 'Go to previous [D]iagnostic message' }) vim.keymap.set('n', ']d', function() vim.diagnostic.jump { count = -1 } end, { desc = 'Go to next [D]iagnostic message' }) vim.keymap.set('n', 'e', vim.diagnostic.open_float, { desc = 'Show diagnostic [E]rror messages' }) vim.keymap.set('n', 'q', vim.diagnostic.setloclist, { desc = 'Open diagnostic [Q]uickfix list' }) -- NOTE: This won't work in all terminal emulators/tmux/etc. Try your own mapping -- or just use to exit terminal mode vim.keymap.set('t', '', '', { desc = 'Exit terminal mode' }) -- Disable arrow keys in normal mode vim.keymap.set('n', '', 'echo "Use h to move!!"') vim.keymap.set('n', '', 'echo "Use l to move!!"') vim.keymap.set('n', '', 'echo "Use k to move!!"') vim.keymap.set('n', '', 'echo "Use j to move!!"') -- Enable moving highlighted lines vim.keymap.set('v', 'J', ":m '>+1gv=gv") vim.keymap.set('v', 'K', ":m '<-2gv=gv") -- Open file tree vim.keymap.set('n', 'pv', vim.cmd.Ex) -- Keep cursor in place when appending next line vim.keymap.set('n', 'J', 'mzJ`z') -- Keep highlighted search term in the center of the screen vim.keymap.set('n', 'n', 'nzzzv') vim.keymap.set('n', 'N', 'Nzzzv') -- Replace highlighted text with yanked one vim.keymap.set('x', 'p', '"_dP') -- Make sure yanking works with d vim.keymap.set('n', 'd', '"_d') vim.keymap.set('v', 'd', '"_d') vim.keymap.set('n', 'k', 'lnextzz') vim.keymap.set('n', 'j', 'lprevzz') vim.keymap.set('n', 'g', [[:%s/\<\>//gI]])