Skip to content
Vitaly edited this page Apr 29, 2016 · 33 revisions

Here's a collection of custom bindings you can easily add to your tigrc.

  • Move in diff view with arrow keys: bind diff <Up> move-up and bind diff <Down> move-down

  • Intent to add: bind status N !@git add -N %(file) (might be useful if you want to add-patch a newly created file)

  • Stage a single line: bind stage 1 stage-update-line

  • Interactive rebase: bind main B !git rebase -i %(commit)

  • Revert: bind main ! !git revert %(commit)

  • Create a new branch: bind refs n !@git branch "%(prompt Enter branch name: )"

  • Add/edit notes for the current commit used during a review: bind generic T !git notes edit %(commit)

  • less-like page scrolling: bind generic ^f scroll-page-down and bind generic ^b scroll-page-up

  • Add verbose flag to git-commit: bind generic C !git commit -v

  • Amend last commit: bind generic + !git commit --amend

  • Drop the selected stash: bind stash D !?git stash drop %(stash)

  • Apply the selected stash: bind stash A !?git stash apply %(stash)

  • Stash the unstaged changes: bind status S !?git stash save --keep-index %(prompt)

  • Delete a file: bind status D !@?rm %(file)

  • Tag the selected commit: bind main T !@git tag %(prompt) %(commit)

  • Push local changes to origin: bind status P !git push origin

  • Open the commit on Github: bind generic B @sh -c "xdg-open 'https://'$(git remote -v | grep -Eo 'github.com[:/][^.]+' | head -1 | tr : /)'/commit/%(commit)'"

  • *Patch the file under the cursor: bind status P !git add --patch %(file)

  • Copy commit title to clipboard:

      bind generic 9 !@sh -c "git show -s --format=%s %(commit) | xclip -selection c" # Linux
      bind generic 9 !@sh -c "git show -s --format=%s %(commit) | pbcopy" # Mac
      bind generic 9 !@sh -c "git show -s --format=%s %(commit) > /dev/clipboard" # Cygwin
    
  • Open changed file in external diff (e.g Beyond Compare): bind status <F4> !git difftool -y "$(git rev-parse --show-toplevel)/%(file)

  • Add selected file to .gitignore and open vim for additional changes: bind status <Ctrl-r> !sh -c "echo %(file) >> .gitignore && vi .gitignore"

Clone this wiki locally