Unix 差异与上下文并排

Unix diff side-by-side with context

在 Unix 中,执行

diff -y file1 file2

可以并排查看两个文件。并执行

diff -c file1 file2

3行上下文可以看出两个文件的区别。 执行

diff -y --supress-common-lines

可以抑制所有公共线。但是如果我想并排显示但有 3 行上下文怎么办? --supress-common-lines 将完全不提供上下文

diff -y -c file1 file2

会给我conflicting output style options。有办法实现吗?

似乎diff(1)不允许,但vimdiff似乎可行:

vimdiff -c 'set diffopt=context:3' file1 file2

缺点是它是纯交互的,您不能将差异转储到文件中,但话又说回来,并排差异在文件中不是很有用。但是,如果您确实想将其保存到文件中,this 很棒的答案会让您这样做:

vimdiff -c 'set diffopt=context:3' -c TOhtml -c 'w! output.html' -c 'qa!' file1 file2

不理想,但也不错。