如何在git-diff输出中着色空白?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (43)

我经常删除不必要的空格(行尾只有ws、ws等)。我甚至还设置了VIM来显示那种红色的线条。

我的问题是,使用git-diff时,我经常会看到这样的情况:

-      else{ 
+      else{

即使我有git-diff颜色,我也看不到区别(在这种特殊情况下,我删除了行尾的1ws)。有什么方法可以告诉git-diff显示ws是红色的吗?(例如,那些与/\s+$/regexp匹配的)。

提问于
用户回答回答于

可能需要设置color.Diff.空格配置设置,例如:

 git config color.diff.whitespace "red reverse"

(我想你已经color.diffcolor.ui设为auto因为你说你看到git diff无论如何)

如果想微调以红色突出显示的空白错误类型,则可以更改。core.whitespace,但是blank-at-eol默认情况下启用,因此可能不需要对提到的示例进行更改。

git diff --ws-error-highlight=new,old <file>

git diff --ws-error-highlight=all <file>

除了使用别名之外,我还不知道如何永久打开它并将其存储在配置中:

git config alias.df 'diff --ws-error-highlight=all'

现在可以使用:

git df <file>

看到红色的变化。

此别名可替换为:

git config diff.wsErrorHighlight all
用户回答回答于

使用git diff -R将移除的线转换成附加的线。然后将突出显示尾随空格。

例如,当将文件从DOS行结尾转换为Unix时,git diff -R清楚地向我展示了^M出现在行尾的字符(Dis)。无-R(而且也没有-w(等等)它显示整个文件已经更改,但没有说明如何更改。

扫码关注云+社区