在git diff'中着色空白;s输出
关于代码格式,我有点纯粹:)。我经常删除不必要的空白(只有ws的行,在行尾的ws等)。我甚至设置了vim来显示这种颜色为红色的线条 我的问题是,使用git diff时,我经常会看到这样的情况:在git diff'中着色空白;s输出,git,colors,diff,whitespace,Git,Colors,Diff,Whitespace,关于代码格式,我有点纯粹:)。我经常删除不必要的空白(只有ws的行,在行尾的ws等)。我甚至设置了vim来显示这种颜色为红色的线条 我的问题是,使用git diff时,我经常会看到这样的情况: - else{ + else{ 即使我有git diff颜色,我也看不出有什么不同(在那个特定的情况下,我在行尾删除了1个ws)。有没有办法告诉git diff将ws着色为红色?(例如那些与/\s+$/regexp匹配的)。我的git diff版本似乎已经做到了这一点-我有git
- else{
+ else{
即使我有git diff颜色,我也看不出有什么不同(在那个特定的情况下,我在行尾删除了1个ws)。有没有办法告诉git diff将ws着色为红色?(例如那些与/\s+$/regexp匹配的)。我的
git diff
版本似乎已经做到了这一点-我有git 1.7.4.1,并且设置了color.ui=auto
您可能需要设置color.diff.whitespace配置设置,例如:
git config color.diff.whitespace "red reverse"
(我假设您已经将color.diff
或color.ui
设置为auto
,因为您说您可以从git diff
中看到彩色补丁。)
如果要微调以红色突出显示的空白错误类型,则可以更改核心。空白
,但默认情况下启用了下线处的空白
,因此您可能不需要更改您提到的示例
一个可能的混淆源是,在
git diff
的输出中,空白错误只在引入的行中突出显示,而不是在删除的行中突出显示。(更新:正如Paul Whittaker指出的,你应该投票:),你可以通过使用git diff-R
来逆转差异的含义来看到这些)
您可以在中找到有关这些配置选项的更多文档
如果不想使用-R
kludge,可以从中使用空白错误突出显示选项
--ws错误突出显示=
以color.diff.whitespace指定的颜色突出显示指定行上的空白错误。
是一个逗号
旧、新、上下文的分隔列表。如果未给出此选项,
仅高亮显示新行中的空白错误。例如。
--ws-error highlight=new,old突出显示删除行和添加行上的空白错误。所有这些都可以用作
旧的,新的,背景
git diff--ws error highlight=new,old
或
git diff--ws error highlight=all
除了使用别名之外,我不知道有什么方法可以永久打开此选项并将其存储在配置中:
git config alias.df'diff--ws error highlight=all'
现在您可以使用:
git-df
以红色显示更改
请注意,此别名可能替换为:
git config diff.wsErrorHighlight all
请参阅和。使用
git diff-R
将删除的行转换为添加的行。然后将突出显示尾随空白
(根据Mark回答中的颜色设置,这假设您已经启用了空白高亮显示。此方法的功劳归于Junio的帖子,网址为。)
例如,当将文件从DOS行尾转换为Unix时,git diff-R
会清楚地显示行尾出现的^M
字符(dis)。如果没有-R
(也没有-w
等),则显示整个文件已更改,但不显示如何更改。使用git diff--color | less-R
。-R
使颜色控制代码人性化
然后可以使用less
的正则表达式搜索,例如
/[[:space:]]+$
对于懒惰的答案略读者,只需运行:
git config --global diff.wsErrorHighlight all
然后,
git diff
也将突出显示删除行中的尾随空格。“一个可能的混淆源是,在git diff的输出中,空格错误仅在引入的行中突出显示,而不是在删除的行中突出显示。”没错!对于删除的行,也没有办法显示它?(嘿,它是diff:))添加--global以在~/中设置。gitconfig@radarek:您可以使用反向选项:git diff-R
是否有此错误报告?如果没有,则似乎应该有。这起作用了git config diff.wserror突出显示所有
。使用git config--global[…]
将更改设置为全局(即影响所有回购)。我刚刚用git 1.7.5.1进行了测试,它肯定不会突出显示要删除的行中的尾随空格。当然,如果您感到绝望,也可以执行git diff | cat-A | less-S
,但除了回车之外,cat
也会显示任何颜色,突出显示转义码。@Paul_Whittakercat-A
不可携带。在BSD cat上,没有此类选项。请改用cat-vet
。顺便说一句,这个正则表达式也适用于vim
。less-R
的最后一个想法只是让我更容易通过less
传递ls--color
。如果你反转颜色(交换前景和背景),就会出现这样的空白变化。在许多终端中实现这一点的一个简单方法是用鼠标突出显示有问题的文本。当然,这个技巧只适用于彩色差异。