23

这个 StackOverflow 答案有一张 KDiff3 突出显示行内差异的图像。有人知道可以在命令行上显示相同(例如,通过颜色)的工具吗?

考虑这一点的另一种方法是想要区分补丁文件中的每个差异。

4

6 回答 6

12

我不知道这是否足以满足您的目的,但vimdiff可以做到这一点(甚至可以做颜色)。例如,请参阅此相关问题中的图像。

于 2009-08-27T16:50:20.760 回答
7

我尝试了我找到的所有工具:wdiff、dwdiff、kdiff3、vimdiff,以显示两条长且略有不同的行之间的差异。我最喜欢的是diff-highlight(git contrib 的一部分)

  • 它支持 diff 格式 - 与需要两个文件(如 (dwdiff))的工具相比具有很大优势,例如,如果您需要可视化单元测试的输出
  • 如果将其连接到 colordiff,它会以黑白或彩色突出显示
  • 突出显示字符 - 有助于比较没有空格的长行(比 wdiff 更好)

安装

在 Ubuntu 上,您可能已经将它作为 git contrib 的一部分(安装在gitdeb 包中)。将其复制或链接到您的 ~/bin 文件夹中/usr/share/doc/git/contrib/diff-highlight/diff-highlight

使用示例

cat tmp.diff | diff-highlight | colordiff

结果:

在此处输入图像描述

于 2016-06-16T14:42:49.530 回答
5

查看所有单词大小差异(尽管不是并排)的另一种直观方法是与wdiff一起使用colordiff(您可能需要同时安装两者)。这方面的一个例子是:

wdiff -n {file-A} {file-A} | colordiff

您可以选择将其通过管道输入less -R以滚动输出(-R用于在 中显示颜色less)。

于 2012-03-13T15:07:46.303 回答
3

我有一个类似的问题,想避免使用vimdiff. 我发现dwdiff(在 Debian 中可用)比wdiff.

最有用的功能dwdiff是您可以使用 自定义分隔符-d [CHARS],因此对于比较各种输出很有用。它还具有内置-c标志的颜色。

于 2014-05-08T09:32:52.053 回答
2

你也许可以用colordiff这个。

在他们的手册页中:

传递给 colordiff 的任何选项都传递给 diff,除了 colordiff 特定的选项“difftype”,例如

colordiff --difftype=debdiff file1 file2

'difftype' 的有效值为:diff、diffc、diffu、diffy、wdiff、debdiff;这些分别对应于普通差异、上下文差异、统一差异、并排差异、wdiff 输出和 debdiff 输出。当 colordiff 无法自动确定差异类型时,请使用这些覆盖。

我尚未对其进行测试,但并排输出(由 生成diff -y file1 file2)可能会给您带来等效的在线差异。

于 2009-08-27T16:59:39.507 回答
1

ccdiff是一个方便的任务专用工具。以下是它的示例:

ccdiff 示例输出

默认情况下,它会突出显示颜色的差异,但也可以在不支持颜色的控制台上使用。

该软件包包含在 Debian 的主存储库中:

ccdiff 是一个彩色差异,它也在改变的行内着色。

所有显示两个文件之间差异的命令行工具都无法显示明显有用的微小更改。ccdiff 尝试提供 or 的外观和感觉diff --colorcolordiff但将彩色输出的显示从已删除和添加的彩色行扩展到更改行中已删除和添加的字符的颜色。

于 2020-11-14T06:43:24.617 回答