Merge pull request #6 from ilyagr/diffonly
Option to skip creating tabs for identical files. Useful outside git.
This commit is contained in:
commit
e81277ecb4
17
README.md
17
README.md
@ -24,17 +24,18 @@ You may need to add `~/bin` to your PATH variable if not already done. See [here
|
|||||||
|
|
||||||
# Usage
|
# Usage
|
||||||
```help
|
```help
|
||||||
usage: vimtabdiff.py [-h] [--vim VIM] pathA pathB
|
usage: vimtabdiff.py [-h] [--vim VIM] [--onlydiffs] pathA pathB
|
||||||
|
|
||||||
Show diff of files from two directories in vim tabs
|
Show diff of files from two directories in vim tabs
|
||||||
|
|
||||||
positional arguments:
|
positional arguments:
|
||||||
pathA
|
pathA
|
||||||
pathB
|
pathB
|
||||||
|
|
||||||
options:
|
options:
|
||||||
-h, --help show this help message and exit
|
-h, --help show this help message and exit
|
||||||
--vim VIM vim command to run
|
--vim VIM vim command to run
|
||||||
|
--onlydiffs only open files where there is a diff
|
||||||
```
|
```
|
||||||
|
|
||||||
## Relevant vim tips
|
## Relevant vim tips
|
||||||
|
@ -29,6 +29,9 @@ def parse_args() -> argparse.Namespace:
|
|||||||
parser.add_argument("pathA", type=Path)
|
parser.add_argument("pathA", type=Path)
|
||||||
parser.add_argument("pathB", type=Path)
|
parser.add_argument("pathB", type=Path)
|
||||||
parser.add_argument("--vim", help="vim command to run", default="vim")
|
parser.add_argument("--vim", help="vim command to run", default="vim")
|
||||||
|
parser.add_argument(
|
||||||
|
"--onlydiffs", help="only open files where there is a diff", action="store_true"
|
||||||
|
)
|
||||||
return parser.parse_args()
|
return parser.parse_args()
|
||||||
|
|
||||||
|
|
||||||
@ -78,6 +81,12 @@ def main() -> None:
|
|||||||
for a, b in get_file_pairs(args.pathA, args.pathB):
|
for a, b in get_file_pairs(args.pathA, args.pathB):
|
||||||
aPath = a.resolve() if a else os.devnull
|
aPath = a.resolve() if a else os.devnull
|
||||||
bPath = b.resolve() if b else os.devnull
|
bPath = b.resolve() if b else os.devnull
|
||||||
|
if (
|
||||||
|
args.onlydiffs
|
||||||
|
and a and b
|
||||||
|
and open(aPath, mode="rb").read() == open(bPath, mode="rb").read()
|
||||||
|
):
|
||||||
|
continue
|
||||||
print(f"tabedit {aPath} | vsp {bPath}", file=vimCmdFile)
|
print(f"tabedit {aPath} | vsp {bPath}", file=vimCmdFile)
|
||||||
cmds = f"""
|
cmds = f"""
|
||||||
tabdo windo :1
|
tabdo windo :1
|
||||||
|
Loading…
Reference in New Issue
Block a user