vim.pack.add({ "https://github.com/lewis6991/gitsigns.nvim", }) require("gitsigns").setup({ -- signs copied from LazyVim signs = { add = { text = "▎" }, change = { text = "▎" }, delete = { text = "" }, topdelete = { text = "" }, changedelete = { text = "▎" }, untracked = { text = "▎" }, }, signs_staged = { add = { text = "▎" }, change = { text = "▎" }, delete = { text = "" }, topdelete = { text = "" }, changedelete = { text = "▎" }, }, }) local gitsigns = require("gitsigns") -- Suggested keymap -- see https://github.com/lewis6991/gitsigns.nvim?tab=readme-ov-file#-keymaps vim.keymap.set("n", "hs", gitsigns.stage_hunk) vim.keymap.set("n", "hr", gitsigns.reset_hunk) vim.keymap.set("v", "hs", function() gitsigns.stage_hunk({ vim.fn.line("."), vim.fn.line("v") }) end) vim.keymap.set("v", "hr", function() gitsigns.reset_hunk({ vim.fn.line("."), vim.fn.line("v") }) end) vim.keymap.set("n", "hS", gitsigns.stage_buffer) vim.keymap.set("n", "hR", gitsigns.reset_buffer) vim.keymap.set("n", "hp", gitsigns.preview_hunk) vim.keymap.set("n", "hi", gitsigns.preview_hunk_inline) vim.keymap.set("n", "hb", function() gitsigns.blame_line({ full = true }) end) vim.keymap.set("n", "hd", gitsigns.diffthis) vim.keymap.set("n", "hD", function() gitsigns.diffthis("~") end) vim.keymap.set("n", "hQ", function() gitsigns.setqflist("all") end) vim.keymap.set("n", "hq", gitsigns.setqflist) -- Toggles vim.keymap.set("n", "tb", gitsigns.toggle_current_line_blame) vim.keymap.set("n", "tw", gitsigns.toggle_word_diff) -- Text object vim.keymap.set({ "o", "x" }, "ih", gitsigns.select_hunk)