require("gitsigns").setup({ signcolumn = true, current_line_blame_opts = { delay = 2000, virt_text_pos = "right_align" }, signs = { add = { hl = "GitSignsAdd", text = "│", numhl = "GitSignsAddNr", linehl = "GitSignsAddLn" }, change = { hl = "GitSignsChange", text = "│", numhl = "GitSignsChangeNr", linehl = "GitSignsChangeLn" }, delete = { hl = "GitSignsDelete", text = "┆", numhl = "GitSignsDeleteNr", linehl = "GitSignsDeleteLn" }, topdelete = { hl = "GitSignsDelete", text = "┬", numhl = "GitSignsDeleteNr", linehl = "GitSignsDeleteLn" }, changedelete = { hl = "GitSignsChange", text = "┴", numhl = "GitSignsChangeNr", linehl = "GitSignsChangeLn", }, }, update_debounce = 200, keymaps = { noremap = true, ["n }g"] = { expr = true, "&diff ? '}c' : 'lua require\"gitsigns\".next_hunk()'" }, ["n {g"] = { expr = true, "&diff ? '{c' : 'lua require\"gitsigns\".prev_hunk()'" }, }, }) vim.g.fugitive_summary_format = "%an\t%s" local default_opts = { noremap = true, silent = true } vim.api.nvim_set_keymap("n", "tt", ":Gitsigns toggle_signs", default_opts) vim.api.nvim_set_keymap("n", "tb", ":Gitsigns toggle_current_line_blame", default_opts) vim.api.nvim_set_keymap("n", "ff", ":G", default_opts) vim.api.nvim_set_keymap("n", "fc", ":GCheckout", default_opts) vim.api.nvim_set_keymap("n", "fd", ":Gvdiffsplit!", default_opts) vim.api.nvim_set_keymap("n", "fh", ":diffget //2", default_opts) vim.api.nvim_set_keymap("n", "fl", ":diffget //3", default_opts)