1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
|
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", "<leader>hs", gitsigns.stage_hunk)
vim.keymap.set("n", "<leader>hr", gitsigns.reset_hunk)
vim.keymap.set("v", "<leader>hs", function()
gitsigns.stage_hunk({ vim.fn.line("."), vim.fn.line("v") })
end)
vim.keymap.set("v", "<leader>hr", function()
gitsigns.reset_hunk({ vim.fn.line("."), vim.fn.line("v") })
end)
vim.keymap.set("n", "<leader>hS", gitsigns.stage_buffer)
vim.keymap.set("n", "<leader>hR", gitsigns.reset_buffer)
vim.keymap.set("n", "<leader>hp", gitsigns.preview_hunk)
vim.keymap.set("n", "<leader>hi", gitsigns.preview_hunk_inline)
vim.keymap.set("n", "<leader>hb", function()
gitsigns.blame_line({ full = true })
end)
vim.keymap.set("n", "<leader>hd", gitsigns.diffthis)
vim.keymap.set("n", "<leader>hD", function()
gitsigns.diffthis("~")
end)
vim.keymap.set("n", "<leader>hQ", function()
gitsigns.setqflist("all")
end)
vim.keymap.set("n", "<leader>hq", gitsigns.setqflist)
-- Toggles
vim.keymap.set("n", "<leader>tb", gitsigns.toggle_current_line_blame)
vim.keymap.set("n", "<leader>tw", gitsigns.toggle_word_diff)
-- Text object
vim.keymap.set({ "o", "x" }, "ih", gitsigns.select_hunk)
|