My simple neovim config
at main 1.5 kB view raw
1return { 2 -- Git 3 { 4 "tpope/vim-fugitive", 5 cmd = "Git", 6 keys = { 7 { "<leader>gg", vim.cmd.Git, desc = "Open vim-fugitive" }, 8 }, 9 }, 10 { 11 "lewis6991/gitsigns.nvim", 12 lazy = true, 13 event = "BufReadPre", 14 opts = { 15 on_attach = function(bufnr) 16 local signs = require("gitsigns") 17 local function map(mode, l, r, opts) 18 opts = opts or {} 19 opts.buffer = bufnr 20 if type(mode) == "table" then 21 for _, m in ipairs(mode) do 22 vim.keymap.set(m, l, r, opts) 23 end 24 else 25 vim.keymap.set(mode, l, r, opts) 26 end 27 end 28 map({ "v", "n" }, "<leader>gsh", function() 29 signs.stage_hunk({ vim.fn.line("."), vim.fn.line("v") }) 30 end, { desc = "Stage hunk" }) 31 map("n", "<leader>gsb", signs.stage_buffer, { desc = "Stage buffer" }) 32 map({ "v", "n" }, "<leader>gsr", function() 33 require("gitsigns").reset_hunk({ vim.fn.line("."), vim.fn.line("v") }) 34 end, { desc = "Reset hunk" }) 35 map("n", "<leader>gb", signs.blame_line, { desc = "Blame Line" }) 36 end, 37 current_line_blame = true, 38 current_line_blame_opts = { 39 delay = "250", 40 }, 41 }, 42 }, 43}