当我有一个差异时,我如何给它上色,使它看起来更好?
我想它的命令行,所以请没有GUI解决方案。
当我有一个差异时,我如何给它上色,使它看起来更好?
我想它的命令行,所以请没有GUI解决方案。
当前回答
由于wdiff接受在插入和删除的开头和结尾指定字符串的参数,您可以使用ANSI颜色序列作为这些字符串:
wdiff -n -w $'\033[30;41m' -x $'\033[0m' -y $'\033[30;42m' -z $'\033[0m' file1 file2
例如,这是比较两个CSV文件的输出:
来自2.2的例子wdiff的实际使用示例。
其他回答
我建议你试试diff-so-fancy。我在工作中使用它,现在看起来确实很棒。它提供了许多选项,非常容易配置你想要的差异。
你可以通过以下方法安装:
sudo npm install -g diff-so-fancy
或者在Mac上:
brew install diff-so-fancy
然后,你可以像这样突出你的差异:
diff -u file1 file2 | diff-so-fancy
我最喜欢的选择是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>。
例子
结果如下:
由于wdiff接受在插入和删除的开头和结尾指定字符串的参数,您可以使用ANSI颜色序列作为这些字符串:
wdiff -n -w $'\033[30;41m' -x $'\033[0m' -y $'\033[30;42m' -z $'\033[0m' file1 file2
例如,这是比较两个CSV文件的输出:
来自2.2的例子wdiff的实际使用示例。
我使用grc(通用着色器),它允许您对包括diff在内的许多命令的输出进行着色。
它是一个Python脚本,可以封装在任何命令中。因此,不是调用diff file1 file2,而是调用grc diff file1 file2来查看着色的输出。我有别名diff到grc diff使它更容易。
使用bat命令:
diff file1 file2 | bat -l diff