关于代码格式化,我有点纯粹:)。我经常删除不必要的空格(只有ws的行,行尾的ws等等)。我甚至设置了vim来显示那种颜色为红色的线条。
我的问题是,使用git-diff时,我经常看到这样的情况:
- else{
+ else{即使我有git-diff的颜色,我也看不出有什么不同(在那个特定的情况下,我在行尾去掉了1ws)。有没有办法让git-diff显示ws颜色为红色?(例如,与/\s+$/ regexp匹配的那些)。
发布于 2011-03-10 19:38:13
您可能需要设置color.diff.whitespace配置设置,例如:
git config color.diff.whitespace "red reverse"(我假设您已经将color.diff或color.ui设置为auto,因为您说无论如何都会看到来自git diff的彩色补丁。)
如果您想微调以红色突出显示的空格错误的类型,则可以更改core.whitespace,但blank-at-eol在默认情况下是启用的,因此对于您提到的示例,您可能不需要更改它。
造成混淆的一个可能原因是,在git diff的输出中,空格错误只在引入的行中突出显示,而不是在删除的行中突出显示。(更新:正如保罗·惠特克指出的那样,你应该投票支持in his answer :),你可以通过颠倒git diff -R的差异感来看到这些。)
您可以在git config man page中找到有关这些配置选项的更多文档
如果您不想使用-R杂凑,可以使用diff man page中的WhiteSpace错误突出显示选项。
--ws-error-highlight=
用color.diff.whitespace指定的颜色突出显示由指定的行上的空格错误。是以逗号分隔的旧的、新的、上下文的列表。如果未指定此选项,则仅突出显示新行中的空格错误。例如--ws-error-highlight=new,old突出显示删除和添加的行上的空格错误。所有内容都可以作为旧的、新的、上下文的速记。
git diff --ws-error-highlight=new,old <file>
或
git diff --ws-error-highlight=all <file>
除了使用别名之外,我不知道有什么方法可以永久打开它并将其存储在config中:
git config alias.df 'diff --ws-error-highlight=all'
现在您可以使用:
git df <file>
来查看红色的变化。
请注意,with Git 2.11 (Q4 2016),此别名可能会替换为:
git config diff.wsErrorHighlight all发布于 2012-07-17 01:26:12
使用git diff -R将删除的行转换为添加的行。然后,尾随的空格将突出显示。
(这假设您已经启用了空格高亮显示,根据Mark答案中的颜色设置。这种方法的功劳归功于Junio在http://git.661346.n2.nabble.com/Highlighting-whitespace-on-removal-with-git-diff-td5653205.html的帖子。)
例如,当将一个文件从DOS行结尾转换为Unix时,git diff -R会清楚地显示出现在行尾的^M字符(Dis)。没有-R (也没有-w等)它显示整个文件已经更改,但没有显示如何更改。
发布于 2013-07-26 03:27:46
使用git diff --color | less -R。-R使颜色控制代码变得人性化。
然后你可以使用less的正则表达式搜索,例如
/[[:space:]]+$https://stackoverflow.com/questions/5257553
复制相似问题