-- [[ Basic Keymaps ]] -- Keymaps for better default experience -- See `:help vim.keymap.set()` vim.keymap.set({ 'n', 'v' }, '', '', { silent = true }) -- 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 }) vim.keymap.set('n', '', "v:count == 0 ? 'gk' : 'k'", { expr = true, silent = true }) vim.keymap.set('n', '', "v:count == 0 ? 'gj' : 'j'", { expr = true, silent = true }) -- Remap for vertical navigation vim.keymap.set('n', '', 'zz', { noremap = true, silent = true }) vim.keymap.set('n', '', 'zz', { noremap = true, silent = true }) vim.keymap.set('n', 'n', 'nzzzv', { noremap = true, silent = true }) vim.keymap.set('n', 'N', 'Nzzzv', { noremap = true, silent = true }) -- Remap for moving selected line / block of text in visual mode vim.keymap.set('v', '', ":m '<-2gv=gv", { desc = 'Move selected lines up' }) vim.keymap.set('v', '', ":m '>+1gv=gv", { desc = 'Move selected lines down' }) -- [[ Highlight on yank ]] -- See `:help vim.highlight.on_yank()` local highlight_group = vim.api.nvim_create_augroup('YankHighlight', { clear = true }) vim.api.nvim_create_autocmd('TextYankPost', { callback = function() vim.highlight.on_yank() end, group = highlight_group, pattern = '*', }) -- Diagnostic keymaps vim.keymap.set('n', '[d', vim.diagnostic.goto_prev) vim.keymap.set('n', ']d', vim.diagnostic.goto_next) vim.keymap.set('n', 'e', vim.diagnostic.open_float) vim.keymap.set('n', 'q', vim.diagnostic.setloclist) -- terminal vim.keymap.set('t', '', vim.api.nvim_replace_termcodes('', true, true, true), { desc = 'Escape terminal mode' }) return {}