gpt4 book ai didi

git - 如何为 *.tex 文件自动使用 git diff --word-diff 选项而不是其他文件?

转载 作者:太空狗 更新时间:2023-10-29 13:53:00 25 4
gpt4 key购买 nike

有没有办法对 LaTeX 文件 (*.tex) 使用 --word-diff 并保持其他文件类型的标准行差异?

我想要实现的是使用 git diff 命令,让 git 自动显示 *.tex 文件上的单词差异,而不需要编写 git diff --word-diff 每次。同时我希望 git 显示其他文件类型的标准行差异。这可能吗?

最佳答案

参见 the Generating diff text section of the gitattributes documentation .但是,要自动获取 *.tex 的词差异文件,您必须将其与其他信息放在一起,并放在其他一些文件中。

此外,至少在我当前的 git 版本 (2.7.4) 中,tex 文件的内置正则表达式已损坏:

fatal: Invalid regular expression: \\[a-zA-Z@]+|\\.|[a-zA-Z0-9<80>-<FF>]+|[^[:sp

所以我必须更加努力地解决这个问题。

将这些放在一起:

$ cat .gitattributes
*.tex diff=tex
$ git config --get diff.tex.wordregex
\\[a-zA-Z]+|[{}]|\\.|[^\{}[:space:]]+

(这个正则表达式直接来自 gitattributes 文档),再加上一个配置项和一个驱动程序:

$ git config --get diff.tex.command
git-word-diff-driver
$ cat ~/scripts/git-word-diff-driver
#! /bin/sh
#
# args are:
# path old-file old-hex old-mode new-file new-hex new-mode
git diff --word-diff $2 $5
exit 0

(这个脚本可能会有所改进,但它显示了总体思路。exit 0 是必需的,因为如果文件不同,git diff 有一个非零退出,因为它们往往如此。幸运的是,没有必要防止无穷无尽递归,因为 git diff --word-diff <em>path1</em> <em>path2</em> 不会重新调用 gitattributes 驱动程序。)

关于git - 如何为 *.tex 文件自动使用 git diff --word-diff 选项而不是其他文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36368060/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com