当我有一个差异时,我如何给它上色,使它看起来更好?

我想它的命令行,所以请没有GUI解决方案。


当前回答

使用Vim:

diff /path/to/a /path/to/b | vim -R -

或者更好的是,VimDiff(或vim -d,打字更短)将并排显示两个、三个或四个文件之间的差异。

例子:

vim -d /path/to/[ab]

vimdiff file1 file2 file3 file4

其他回答

diff的手册页没有建议从内部进行着色的解决方案。请考虑使用色差。它是diff的包装器,产生与diff相同的输出,除了它使用彩色语法高亮显示来增强输出以增加可读性:

diff old new | colordiff

或者是:

colordiff old new

安装:

Ubuntu/Debian: sudo apt-get install colordiff OS X: brew install colordiff或port install colordiff

在Ubuntu上的最新版本的Git中,你可以通过以下方式启用diff-highlight:

sudo ln -s /usr/share/doc/git/contrib/diff-highlight/diff-highlight /usr/local/bin
sudo chmod a+x /usr/share/doc/git/contrib/diff-highlight/diff-highlight

然后把这个添加到你的。gitconfig文件中:

[pager]
    log = diff-highlight | less
    show = diff-highlight | less
    diff = diff-highlight | less

脚本可能位于其他发行版中的其他地方。您可以使用locate diff-highlight来查找位置。

使用Vim:

diff /path/to/a /path/to/b | vim -R -

或者更好的是,VimDiff(或vim -d,打字更短)将并排显示两个、三个或四个文件之间的差异。

例子:

vim -d /path/to/[ab]

vimdiff file1 file2 file3 file4

我使用grc(通用着色器),它允许您对包括diff在内的许多命令的输出进行着色。

它是一个Python脚本,可以封装在任何命令中。因此,不是调用diff file1 file2,而是调用grc diff file1 file2来查看着色的输出。我有别名diff到grc diff使它更容易。

字符级色差: 安装ccdiff

ccdiff -r /usr/share/dict/words /tmp/new-dict