Git - 排除{}的颜色词

Cas*_*ash 9 regex git

我正在使用git和--color-words来查看我的差异.在我的差异中,它表明我删除了

<b>{{ljcount}}</b>&nbsp;&nbsp;&nbsp;Changes
Run Code Online (Sandbox Code Playgroud)

我补充说:

<b>{{skills_limits}}</b>&nbsp;&nbsp;&nbsp;Changes
Run Code Online (Sandbox Code Playgroud)

这比我想要的要大(我希望单词边界在{}).我试过玩--word-diff-regex,但我找不到正则表达式让它工作.我怎样才能达到这个效果?

hol*_*eek 13

来自git help diff:

   --word-diff-regex=<regex>
       Use <regex> to decide what a word is, instead of considering runs of non-whitespace to be a word. Also implies
       --word-diff unless it was already enabled.
Run Code Online (Sandbox Code Playgroud)

以下表达式将使单词成为任何字符串和下划线,或任何非空白字符.

$ git diff --color-words --word-diff-regex='\\w+|[^[:space:]]'
Run Code Online (Sandbox Code Playgroud)


are*_*lek 7

由于您已经使用--color-words,您不需要--word-diff-regex单独提供,第一个选项接受正则表达式:

--color-words[=<regex>]
Run Code Online (Sandbox Code Playgroud)

等效于--word-diff=colorplus --word-diff-regex=<regex> (如果指定了正则表达式)。

一个对我特别有效的正则表达式是:

$ git diff --color-words='\w+|.'
Run Code Online (Sandbox Code Playgroud)