如何在 git diff 中根据标点符号拆分单词?
How do I split words on punctuation in git diff?
我用下面的命令运气不错:
git diff --color-words='[^][<>()\{},.;:?/|\=+*&^%$#@!~`"'\''[:space:]]+|[][<>(){},.;:?/|\=+*&^%$#@!~`"'\'']'
但它似乎没有正确否定第一个字符中的方括号 class。
我试过这个:
git diff --color-words='[^\]\[<>()\{},.;:?/|\=+*&^%#@!~`"'\''[:space:]]+|[\]\[<>(){},.;:?/|\=+*&^%#@!~`"'\'']'
为了使方括号成为文字,但失败并显示消息 fatal: Invalid regular expression
。
编辑:
我得到的输出是这样的:
foobarfo]ob[ar
但我追求的是:
fo]oob[ar
使用单词差异,您将始终在新单词旁边看到您删除的单词。
这就是为什么您在新更改之前有这个词。
看了这个问题,很详细的回答:
Filtering a diff with a regular expression
尽管我最终不需要它,但要像我的示例一样查看字符级别的差异,这可行:
git diff --color-words=.
我用下面的命令运气不错:
git diff --color-words='[^][<>()\{},.;:?/|\=+*&^%$#@!~`"'\''[:space:]]+|[][<>(){},.;:?/|\=+*&^%$#@!~`"'\'']'
但它似乎没有正确否定第一个字符中的方括号 class。
我试过这个:
git diff --color-words='[^\]\[<>()\{},.;:?/|\=+*&^%#@!~`"'\''[:space:]]+|[\]\[<>(){},.;:?/|\=+*&^%#@!~`"'\'']'
为了使方括号成为文字,但失败并显示消息 fatal: Invalid regular expression
。
编辑:
我得到的输出是这样的:
foobarfo]ob[ar
但我追求的是:
fo]oob[ar
使用单词差异,您将始终在新单词旁边看到您删除的单词。
这就是为什么您在新更改之前有这个词。
看了这个问题,很详细的回答:
Filtering a diff with a regular expression
尽管我最终不需要它,但要像我的示例一样查看字符级别的差异,这可行:
git diff --color-words=.