什么是'git diff--word diff';默认正则表达式?

什么是'git diff--word diff';默认正则表达式?,git,git-diff,word-diff,Git,Git Diff,Word Diff,git diff具有与单词匹配的选项--word diff regex=。某些语言有特殊的默认值(如man5gittributes中所述)。但这些是什么?文档中没有描述,我查找了git的源代码,也没有找到它们 有什么想法吗 编辑:我在git 1.9.1上,但我接受任何版本的答案。源文件中包含默认的单词regex。PATTERNS和IPATTERN宏将基字regex作为其第三个参数,并添加“|[^[:space:][\xc0-\xff][\x80-\xbf]+”以确保不属于较大单词的所有非空白字符

git diff
具有与单词匹配的选项
--word diff regex=
。某些语言有特殊的默认值(如
man5gittributes
中所述)。但这些是什么?文档中没有描述,我查找了
git
的源代码,也没有找到它们

有什么想法吗


编辑:我在git 1.9.1上,但我接受任何版本的答案。

源文件中包含默认的单词regex。
PATTERNS
IPATTERN
宏将基字regex作为其第三个参数,并添加
“|[^[:space:][\xc0-\xff][\x80-\xbf]+”
以确保不属于较大单词的所有非空白字符本身被视为一个单词,并假设为UTF-8,而不拆分多字节字符。例如,在:

regex这个词是
“\\\[a-zA-Z@]+\\.[a-zA-Z0-9\x80-\xff]+\\[^[:space:][\xc0-\xff][\x80-\xbf]+”


在这种情况下,
[\xc0-\xff][\x80-\xbf]+
恰好没有任何好处,因为
[\xc0-\xff][\x80-\xbf]+
涵盖的所有内容都已经包含在
[a-zA-Z0-9\x80-\xff]+
中,但它也不会造成任何伤害。

预定义的差异驱动程序列表(它们都有预定义的单词diff regex)在表格中给出。有人进一步指出

您仍然需要通过.gittributes使用属性机制来启用此功能

因此,要为所有
*.tex
文件激活hvd答案中显示的
tex
模式,您可以在项目根目录中发出以下命令(省略Windows下的引号):


在git版本2.8.3上,$git diff--word diff regex=“\\\[a-zA-Z@][a-zA-Z0-9\x80-\xff][^[:space:][\xc0-\xff][\x80-\xbf]+”和git diff--word diff产生类似但不同的结果
PATTERNS("tex", "^(\\\\((sub)*section|chapter|part)\\*{0,1}\\{.*)$",
         "\\\\[a-zA-Z@]+|\\\\.|[a-zA-Z0-9\x80-\xff]+"),
echo '*.tex diff=tex' >> .gitattributes