彩色单词差异就像git一样?


8

我使用git的(彩色)功能已经很长时间了--word-diff,我觉得很棒。今天我发现自己处于一种情况,我有两个字符串,需要逐个单词地进行比较,并渴望获得git diff之类的东西。

我知道wdiff+ colordiff,但其结果肯定不是很出色:

me@me:~$ wdiff <(echo -e "abc\ndef") <(echo -e "dbcx\ndef") | colordiff
[-abc-]{+dbcx+}
def

周围还有更好的选择吗?我特别不喜欢这些[--]并且{++}

Answers:


6

您可以使用git自己的diff-highlight。它可以突出显示统一diff输出中的单词差异,还可以应对输入中的ANSI颜色。因此,您可以执行以下操作:

colordiff -u <(echo -e "foo abc\ndef") <(echo -e "foo dbcx\ndef") | diff-highlight

这仅适用于在行上更改单个单词的琐碎情况。如果更改了多个单词,则会错误地将反向视频延伸到没有变化的单词上: colordiff -u <(echo -e "foo abc x y\ndef") <(echo -e "foo dbcx x z\ndef") | diff-highlight
Thomas Dickey

@ThomasDickey似乎需要两个单词才能重新同步。无论如何,它做什么的git耸肩
佐藤桂
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.