Skip to content

Commit 66f7cdc

Browse files
committed
feat(nvim): add tab-based git diff with q-to-close keybinding
1 parent 29a3524 commit 66f7cdc

1 file changed

Lines changed: 12 additions & 2 deletions

File tree

lua/plugins/fugitive.lua

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,16 @@ return {
2424
vim.fn.search(pattern, "w")
2525
end
2626

27+
local function git_diff_tab()
28+
vim.cmd("tabedit %")
29+
vim.cmd("Gdiff")
30+
for i = 1, vim.fn.winnr("$") do
31+
vim.api.nvim_win_call(vim.fn.win_getid(i), function()
32+
vim.keymap.set("n", "q", ":tabclose<CR>", { buffer = true, silent = true })
33+
end)
34+
end
35+
end
36+
2737
local function show_range_history()
2838
local start_line = vim.fn.line("v")
2939
local end_line = vim.fn.line(".")
@@ -35,8 +45,8 @@ return {
3545
end
3646

3747
return {
38-
{ "<leader>hd", git_diff_file, desc = "Git: Diff file" },
39-
{ "<leader>h%", "<cmd>Gdiff<cr>", desc = "Git: Gdiff" },
48+
{ "<leader>hd", git_diff_tab, desc = "Git: Gdiff" },
49+
{ "<leader>h%", git_diff_file, desc = "Git: Diff file" },
4050
{ "<leader>hH", git_status, desc = "Git: Status" },
4151
{ "<leader>hl", show_range_history, mode = "v", desc = "Git: Show range history" },
4252
}

0 commit comments

Comments
 (0)