require('gitsigns').setup() local gitsigns = require('gitsigns') vim.keymap.set('n', 'gm', gitsigns.blame_line, { desc = 'Show git message for current line' }) vim.keymap.set('n', 'gd', function () vim.cmd("Gitsigns diffthis ~ vertical=true") vim.wait(1000) vim.cmd("wincmd w") end, { desc = 'Show diff for current line' }) vim.keymap.set('n', 'gs', gitsigns.stage_hunk, { desc = 'Stage current hunk' }) vim.keymap.set('n', 'gS', gitsigns.stage_buffer, { desc = 'Stage current buffer' }) vim.keymap.set('n', 'gr', gitsigns.reset_hunk, { desc = 'Reset current hunk' }) vim.keymap.set('n', 'gR', gitsigns.reset_buffer, { desc = 'Reset current buffer' }) vim.keymap.set('n', 'h', gitsigns.next_hunk, { desc = 'Move to next hunk' }) vim.keymap.set('n', 'H', gitsigns.prev_hunk, { desc = 'Move to previous hunk' }) vim.keymap.set('n', 'ph', gitsigns.preview_hunk, { desc = 'Preview hunk in popup' })