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) vim.keymap.set('n', 'cl', function() local filepath = vim.fn.expand '%:.' local line_number = vim.fn.line '.' local result = filepath .. ':' .. line_number vim.fn.setreg('+', result) print('Copied: ' .. result) end, { desc = '[C]opy cursor [l]ocation with line number' })