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

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


当前回答

到目前为止还没有人提到delta。它支持带有语法高亮的语法彩色差异视图。

其他回答

彩色,字级差异输出

下面是你可以用下面的脚本和diff-highlight做的事情:

#!/bin/sh -eu

# Use diff-highlight to show word-level differences

diff -U3 --minimal "$@" |
  sed 's/^-/\x1b[1;31m-/;s/^+/\x1b[1;32m+/;s/^@/\x1b[1;34m@/;s/$/\x1b[0m/' |
  diff-highlight

(这要归功于@retracile对sed高亮的回答)

我最喜欢的选择是vdiff <file1> <file2>函数(我忘记从哪里得到它)。

它将在Vim中并排打开两个窗口,以清楚地看到两个文件之间的差异。

vdiff () {
    if [ "${#}" -ne 2 ] ; then
        echo "vdiff requires two arguments"
        echo "  comparing dirs:  vdiff dir_a dir_b"
        echo "  comparing files: vdiff file_a file_b"
        return 1
    fi

    local left="${1}"
    local right="${2}"

    if [ -d "${left}" ] && [ -d "${right}" ]; then
        vim +"DirDiff ${left} ${right}"
    else
        vim -d "${left}" "${right}"
    fi
}

将这个脚本放在您的(.alias)或(.zshrc)中,然后使用 Vdiff <file1> <file2>. Vdiff <file1>。

例子

结果如下:

使用bat命令:

diff file1 file2 | bat -l diff

到目前为止还没有人提到delta。它支持带有语法高亮的语法彩色差异视图。

字符级色差: 安装ccdiff

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