set diff-options = --diff-merges=first-parent set wrap-lines = true set tab-size = 4 # Navigation bind generic g move-first-line bind generic G move-last-line bind main G move-last-line # Search for diff (c)hunk and diff header bind stage 2 :?^@@ 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 # 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 --no-prompt --trust-exit-code `expr '%(status)' : 'Staged changes' >/dev/null && echo --staged` -- '%(file)'" # 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"