kickstart.nvim/lua/custom/remap.lua

34 lines
1.5 KiB
Lua

vim.keymap.set('v', 'J', ":m '>+1<CR>gv=gv", { desc = 'Move selection down' })
vim.keymap.set('v', 'K', ":m '<-2<CR>gv=gv", { desc = 'Move selection up' })
vim.keymap.set('n', '<C-d>', '<C-d>zz', { desc = 'Half page down (centered)' })
vim.keymap.set('n', '<C-u>', '<C-u>zz', { desc = 'Half page up (centered)' })
vim.keymap.set('n', '<leader>y', '"+y', { desc = 'Yank to system clipboard' })
vim.keymap.set('v', '<leader>y', '"+y', { desc = 'Yank to system clipboard' })
vim.keymap.set('n', '<leader>Y', '"+Y', { desc = 'Yank line to system clipboard' })
vim.keymap.set('n', '<leader>p', '"+p', { desc = 'Paste from system clipboard' })
vim.keymap.set('v', '<leader>p', '"+p', { desc = 'Paste from system clipboard' })
vim.keymap.set('n', '<leader>P', '"+P', { desc = 'Paste before from system clipboard' })
vim.keymap.set('n', '<leader>%s', [[:%s/\<<C-r><C-w>\>/<C-r><C-w>/gI<Left><Left><Left>]], { desc = 'Search and replace word under cursor' })
vim.keymap.set('n', '<leader>u', vim.cmd.UndotreeToggle)
vim.keymap.set('n', 'gd', function()
vim.lsp.buf.definition()
end)
vim.keymap.set('n', '<leader>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' })
vim.keymap.set('n', '<leader>gs', ':G<CR>', { desc = 'Git status' })
vim.keymap.set('n', '<leader>gd', ':Gdiffsplit<CR>', { desc = 'Git split diff' })