local map = vim.keymap.set require("gitsigns").setup({ signs = { add = { hl = 'GitSignsAdd' , text = '│', numhl='GitSignsAddNr' , linehl='GitSignsAddLn' }, untracked = { hl = 'GitSignsAdd' , text = '│', numhl='GitSignsAddNr' , linehl='GitSignsAddLn' }, change = { hl = 'GitSignsChange', text = '│', numhl='GitSignsChangeNr', linehl='GitSignsChangeLn' }, changedelete = { hl = 'GitSignsChange', text = '│', numhl='GitSignsChangeNr', linehl='GitSignsChangeLn' }, delete = { hl = 'GitSignsDelete', text = '▁', numhl='GitSignsDeleteNr', linehl='GitSignsDeleteLn' }, topdelete = { hl = 'GitSignsDelete', text = '▔', numhl='GitSignsDeleteNr', linehl='GitSignsDeleteLn' }, }, on_attach = function(buf) local gs = package.loaded.gitsigns local opts = { buffer = buf, expr = true, replace_keycodes = false } -- Navigation map("n", "]c", "&diff ? ']c' : 'Gitsigns next_hunk'", opts) map("n", "[c", "&diff ? '[c' : 'Gitsigns prev_hunk'", opts) -- Actions map({ "n", "v" }, "hr", gs.reset_hunk, { buffer = buf }) map({ "n", "v" }, "hs", gs.stage_hunk) map("n", "hS", gs.stage_buffer, { buffer = buf }) map("n", "hp", gs.preview_hunk, { buffer = buf }) -- Text object map({ "o", "x" }, "ih", ":Gitsigns select_hunk", { buffer = buf }) end, })