da5e24260a60d65479b3d64c608b8b072f5bdf19
				
			
			
		
	This allows to include spaces in vim command Add example to change default diff algorithm Move to first line on each file
Do you use git difftool to review changes before making a commit? The problem with that is that you get to see the diff of one file at a time. You can't easily stop it after few files and you can't go back to a previous file. vimtabdiff.py loads all the files with diffs, one in each vim tab page. You can move around any file and edit the diffs easily.
Install
    mkdir -p ~/bin
    # for python version >= 3.10
    curl -o ~/bin/vimtabdiff.py "https://raw.githubusercontent.com/balki/vimtabdiff/master/vimtabdiff.py"
    # for python version < 3.10
    curl -o ~/bin/vimtabdiff.py "https://raw.githubusercontent.com/balki/vimtabdiff/py38/vimtabdiff.py"
    chmod +x ~/bin/vimtabdiff.py
You may need to add ~/bin to your PATH variable if not already done. See here for help.
👍 this issue for pip install support
Screenshot
Usage
    usage: vimtabdiff.py [-h] [--vim VIM] pathA pathB
    Show diff of files from two directories in vim tabs
    positional arguments:
      pathA
      pathB
    options:
      -h, --help  show this help message and exit
      --vim VIM   vim command to run
Relevant vim tips
gt→ Go to next tabgT→ Go to previous tab:tabr→ Go to first tab:drop filenam<Tab>→ Go to the tab with filenameg<Tab>→ Go to last used tab (Works in vim version > 8.2.1401)set mouse→ Now clicking on a tab works]c→ Go to next diff hunk[c→ Go to previous diff hunkdo,dp→ Diff obtain, Diff putzo,zc,zR→ Fold open, Fold close, open all folds
See Git diffs
Setup
    git config --global difftool.vimtabdiff.cmd 'vimtabdiff.py $LOCAL $REMOTE'
    git config --global alias.dt 'difftool --tool vimtabdiff --dir-diff'
Usage
    git dt <any git diff revision expression> # see `man gitrevisions`
    git dt           # Unstaged changes
    git dt --staged  # Staged changes
    git dt HEAD~1    # Last commit
    git di v1.0 v2.0 # diff between two tags
Using custom vim command
Using clean vim without reading vimrc
    git config --global difftool.vimtabdiff.cmd 'vimtabdiff.py --vim "vim --clean" $LOCAL $REMOTE'
Git config file (~/.gitconfig) should look like this
    [alias]
            ...
            dt = difftool --tool vimtabdiff --dir-diff
    [difftool "vimtabdiff"]
            cmd = vimtabdiff.py --vim \"vim --clean\" $LOCAL $REMOTE
Using better diff algorithm
    git config --global difftool.vimtabdiff.cmd 'vimtabdiff.py --vim "vim +\"set diffopt+=algorithm:patience\"" $LOCAL $REMOTE'
Note: Not tested in non-linux OS. But I guess it should work fine. Pull requests welcome if found any issues.
Similar
					Languages
				
				
								
								
									Python
								
								100%
							
						
					