-- General keymaps for navigation, editing, and window management -- Exit insert mode with jj vim.keymap.set('i', 'jj', '', { desc = 'Exit insert mode' }) -- Split management vim.keymap.set('n', 'sj', 'w', { desc = 'Move to next window' }) vim.keymap.set('n', 'sk', 'W', { desc = 'Move to previous window' }) vim.keymap.set('n', 'su', ':resize +5', { desc = 'Increase window height' }) vim.keymap.set('n', 'si', ':resize -5', { desc = 'Decrease window height' }) vim.keymap.set('n', 'sh', ':vertical resize +5', { desc = 'Increase window width' }) vim.keymap.set('n', 'sl', ':vertical resize -5', { desc = 'Decrease window width' }) vim.keymap.set('n', 'sd', ':hide', { desc = 'Hide current window' }) vim.keymap.set('n', 'so', ':', { desc = 'Open command mode' }) vim.keymap.set('n', 'ss', ':split ', { desc = 'Horizontal split' }) vim.keymap.set('n', 'sv', ':vsplit ', { desc = 'Vertical split' }) -- Tab management vim.keymap.set('n', 'th', ':tabfirst', { desc = 'Go to first tab' }) vim.keymap.set('n', 'tj', ':tabnext', { desc = 'Go to next tab' }) vim.keymap.set('n', 'tk', ':tabprev', { desc = 'Go to previous tab' }) vim.keymap.set('n', 'tl', ':tablast', { desc = 'Go to last tab' }) vim.keymap.set('n', 'tt', ':tabedit ', { desc = 'Create new tab' }) vim.keymap.set('n', 'tn', ':tabnext', { desc = 'Go to next tab' }) vim.keymap.set('n', 'tm', ':tabm ', { desc = 'Move tab' }) vim.keymap.set('n', 'td', ':tabclose', { desc = 'Close tab' }) -- Buffer management vim.keymap.set('n', '', ':bnext', { desc = 'Next buffer' }) vim.keymap.set('n', '', ':bprev', { desc = 'Previous buffer' }) vim.keymap.set('n', 'bd', ':bdelete', { desc = 'Close current buffer' }) -- Python debugging vim.keymap.set('n', 'p', 'oimport ipdb; ipdb.set_trace()', { desc = 'Insert Python debugger breakpoint' })