【发布时间】:2018-03-06 14:28:53
【问题描述】:
我无法获得:
git difftool -b -y -x "diff --color --suppress-common-lines -y -w -W 200" master:file.txt file.txt
在管道到less -R 时保留其彩色输出。我做错了什么?
我想我已经尝试了所有 git color config 选项,例如
git -c color.ui=always difftool --color=always -b -y -x "diff --color --suppress-common-lines -y -w -W 200" master:file.txt file.txt | less -R
但是没有颜色。一旦我将管道移至less -R,我就会看到彩色输出。有什么想法吗?
编辑:感谢@jonathan-wakely,我在外部difftooldiff 命令中缺少--color 选项的=always 参数。现在,当管道减少时,这会保持颜色:
git difftool -b -y -x "/usr/local/bin/diff --color=always --suppress-common-lines -y -w -W 200" master:file.txt file.txt
【问题讨论】:
-
您确定您的意思是
difftool,而不仅仅是diff?因为difftool为每个文件调用diff 工具(如vimdiff),而不是通过管道将diff 传递到std 输出。difftool你配置了什么? -
git diff --color=always | less -R适合我,完美显示颜色。 -
@phd 我使用
diff和并排 (-y -W 200) 选项作为外部 difftool -
那么你需要在“工具”中
--color=always。git difftool -x 'diff --color=always -y -W 50' | less -R为我工作。
标签: git colors pager less-unix