vim.keymap.set('v', 'J', ":m '>+1gv=gv", { desc = 'Move selection down' }) vim.keymap.set('v', 'K', ":m '<-2gv=gv", { desc = 'Move selection up' }) vim.keymap.set('n', '', 'zz', { desc = 'Half page down (centered)' }) vim.keymap.set('n', '', 'zz', { desc = 'Half page up (centered)' }) vim.keymap.set('n', 'y', '"+y', { desc = 'Yank to system clipboard' }) vim.keymap.set('v', 'y', '"+y', { desc = 'Yank to system clipboard' }) vim.keymap.set('n', 'Y', '"+Y', { desc = 'Yank line to system clipboard' }) vim.keymap.set('n', 'p', '"+p', { desc = 'Paste from system clipboard' }) vim.keymap.set('v', 'p', '"+p', { desc = 'Paste from system clipboard' }) vim.keymap.set('n', 'P', '"+P', { desc = 'Paste before from system clipboard' }) vim.keymap.set('n', '%s', [[:%s/\<\>//gI]], { desc = 'Search and replace word under cursor' }) vim.keymap.set('n', 'u', vim.cmd.UndotreeToggle)