A very fast neovim config :D
at master 75 lines 2.2 kB view raw
1local M = { 2 "lewis6991/gitsigns.nvim", 3 event = "BufReadPost", 4 opts = { 5 signs = { 6 add = { text = "+" }, 7 change = { text = "~" }, 8 delete = { text = "_" }, 9 topdelete = { text = "" }, 10 changedelete = { text = "~" }, 11 }, 12 on_attach = function(bufnr) 13 local gitsigns = require("gitsigns") 14 15 local function map(mode, l, r, opts) 16 opts = opts or {} 17 opts.buffer = bufnr 18 vim.keymap.set(mode, l, r, opts) 19 end 20 21 -- Navigation 22 map("n", "]c", function() 23 if vim.wo.diff then 24 vim.cmd.normal({ "]c", bang = true }) 25 else 26 gitsigns.nav_hunk("next") 27 end 28 end) 29 30 map("n", "[c", function() 31 if vim.wo.diff then 32 vim.cmd.normal({ "[c", bang = true }) 33 else 34 gitsigns.nav_hunk("prev") 35 end 36 end) 37 38 -- Actions 39 map("n", "<leader>sh", gitsigns.stage_hunk) 40 map("n", "<leader>rh", gitsigns.reset_hunk) 41 42 map("v", "<leader>sh", function() 43 gitsigns.stage_hunk({ vim.fn.line("."), vim.fn.line("v") }) 44 end) 45 46 map("v", "<leader>rh", function() 47 gitsigns.reset_hunk({ vim.fn.line("."), vim.fn.line("v") }) 48 end) 49 50 map("n", "<leader>sH", gitsigns.stage_buffer) 51 map("n", "<leader>rH", gitsigns.reset_buffer) 52 map("n", "<leader>ph", gitsigns.preview_hunk) 53 54 map("n", "<leader>bh", function() 55 gitsigns.blame_line({ full = true }) 56 end) 57 58 map("n", "<leader>hd", gitsigns.diffthis) 59 60 map("n", "<leader>hD", function() 61 gitsigns.diffthis("~") 62 end) 63 64 map("n", "<leader>hQ", function() 65 gitsigns.setqflist("all") 66 end) 67 map("n", "<leader>hq", gitsigns.setqflist) 68 69 -- Toggles 70 map("n", "<leader>tb", gitsigns.toggle_current_line_blame) 71 end, 72 }, 73} 74 75return M