-------------------------------------------------------------------------------- -- Toggles -------------------------------------------------------------------------------- -- Clear highlighted searched on pressing in normal mode vim.keymap.set('n', '', 'nohlsearch', { desc = 'Hide search results' }) -- line numbers vim.keymap.set('n', 'tn', ' set nu! ', { desc = '[T]oggle line [N]umbers' }) vim.keymap.set('n', 'trn', ' set rnu! ', { desc = '[T]oggle [R]elative line [N]umbers' }) -------------------------------------------------------------------------------- -- Insert movements -------------------------------------------------------------------------------- -- go to beginning and end vim.keymap.set('i', '', '^i', { desc = 'Go to the start of the line' }) vim.keymap.set('i', '', '', { desc = 'Go to the end of the line' }) vim.keymap.set('i', '', 'wa', { desc = 'Go a word further' }) vim.keymap.set('i', '', 'ba', { desc = 'Go a word backward' }) -- navigate within insert mode vim.keymap.set('i', '', '', { desc = 'Move left' }) vim.keymap.set('i', '', '', { desc = 'Move right' }) vim.keymap.set('i', '', '', { desc = 'Move down' }) vim.keymap.set('i', '', '', { desc = 'Move up' }) -------------------------------------------------------------------------------- -- Workspace, buffer and window manipulation -------------------------------------------------------------------------------- -- split windows vim.keymap.set('n', '"', 'vsplit', { desc = 'Split the window vertically' }) vim.keymap.set('n', '%', 'split', { desc = 'Split the window horizontally' }) -- window actions vim.keymap.set('n', 'wbn', 'enew', { desc = 'Open a [N]ew [B]uffer' }) vim.keymap.set('n', 'wbc', 'bw', { desc = '[C]lose current [B]uffer' }) -- :bd would keep in background vim.keymap.set('n', '', 'resize +1', { desc = 'Resize window' }) vim.keymap.set('n', '', 'resize -1', { desc = 'Resize window' }) vim.keymap.set('n', '', 'vertical resize +1', { desc = 'Resize window vertically' }) vim.keymap.set('n', '', 'vertical resize -1', { desc = 'Resize window vertically' }) -- tabs/workspaces vim.keymap.set('n', 'wn', 'tabnew', { desc = 'Open a [N]ew [W]orkspace/Tab' }) vim.keymap.set('n', 'wc', 'tabclose', { desc = '[C]lose a [W]orkspace/Tab' }) vim.keymap.set('n', 'wk', 'tabnext', { desc = 'Next [W]orkspace/Tab' }) vim.keymap.set('n', 'wj', 'tabprevious', { desc = 'Last [W]orkspace/Tab' }) -------------------------------------------------------------------------------- -- Move to things -------------------------------------------------------------------------------- -- move to window -- See `:help wincmd` for a list of all window commands vim.keymap.set('n', '', '', { desc = 'Move focus to the left window' }) vim.keymap.set('n', '', '', { desc = 'Move focus to the right window' }) vim.keymap.set('n', '', '', { desc = 'Move focus to the lower window' }) vim.keymap.set('n', '', '', { desc = 'Move focus to the upper window' }) -- diagnostics vim.keymap.set('n', '[d', vim.diagnostic.goto_prev, { desc = 'Go to previous [D]iagnostic message' }) vim.keymap.set('n', ']d', vim.diagnostic.goto_next, { desc = 'Go to next [D]iagnostic message' })