From 307ddada77b66c418f65ee0100e7a2ba0be64b85 Mon Sep 17 00:00:00 2001 From: Guangxiong Lin Date: Sun, 23 Jan 2022 00:04:34 +0800 Subject: Add difftool keybinds in tig config Add keybinds to call git difftool in tig. Use D in all views to show the diffs of commit/file. Besides, this commit also changes the structure of .tigrc file. --- .tigrc | 36 ++++++++++++++++++++++++------------ 1 file changed, 24 insertions(+), 12 deletions(-) (limited to '.tigrc') diff --git a/.tigrc b/.tigrc index 904236d..a5bed01 100644 --- a/.tigrc +++ b/.tigrc @@ -1,19 +1,31 @@ -bind generic + !git commit --amend -bind generic 9 @sh -c "echo -n %(commit) | xclip -selection c" -bind generic T !git notes edit %(commit) -bind refs 3 !git rebase -i %(branch) +# Navigation +bind generic g move-first-line +bind generic G move-last-line +bind main G move-last-line -# Search for previous diff (c)hunk and next diff header +# Search for diff (c)hunk and diff header bind stage 2 :?^@@ -bind stage D :/^diff --(git|cc) +bind diff 2 :?^@@ +bind stage 3 :/^diff --(git|cc) +bind diff 3 :/^diff --(git|cc) + +# Changes +bind generic + ?git commit --amend + +# Branches +bind refs 3 ?git rebase -i %(branch) +bind refs M ?git merge %(branch) # Grep view bind generic S view-grep -# Copy current commit ID to the clipboard -bind generic I !git add -i %(file) +# Use git difftool to view the diff +bind generic D !git difftool --no-prompt --trust-exit-code %(commit)^! +bind diff D !git difftool --no-prompt --trust-exit-code %(commit)^! -- %(file) +bind stage D !git difftool --no-prompt --trust-exit-code HEAD -- %(file) +bind stage D !sh -c "git difftool --tool=vimdiff --trust-exit-code --no-prompt `expr '%(status)' : 'Staged changes' >/dev/null && echo --staged` -- '%(file)'" -# Navigation -bind generic g move-first-line -bind generic G move-last-line -bind main G move-last-line +# Misc +bind generic T !git notes edit %(commit) +## Copy current commit ID to the clipboard +bind generic 9 @sh -c "echo -n %(commit) | xclip -selection c" -- cgit v1.2.3