rad*_*rek 145 git diff whitespace colors
关于代码格式化我有点纯粹:).我经常删除不必要的空格(只有ws的行,行末尾的ws等).我甚至设置了vim来显示那种颜色为红色的线条.
我的问题是使用git-diff我经常看到这样的东西:
- else{
+ else{
Run Code Online (Sandbox Code Playgroud)
即使我有git-diff颜色,我也看不出差异(在那种特殊情况下,我在行尾删除了1个ws).有没有办法告诉git-diff显示ws变成红色?(例如与/\s + $/regexp匹配的那些).
Mar*_*air 164
您可能需要设置color.diff.whitespace配置设置,例如:
git config color.diff.whitespace "red reverse"
Run Code Online (Sandbox Code Playgroud)
(我假设你已经拥有color.diff或color.ui设置过,auto因为你说你git diff无论如何都会看到彩色补丁.)
如果要微调以红色突出显示的空白错误类型,则可以更改core.whitespace,但blank-at-eol默认情况下已启用,因此您可能不需要为您提到的示例更改该错误.
可能的混淆源是,在输出中git diff,空格错误仅在引入的行中突出显示,而不是在被删除的行中突出显示.(更新:正如Paul Whittaker 在他的回答中指出的那样,你应该投票:),你可以通过扭转差异感来看到这些git diff -R.)
您可以在git config手册页中找到有关这些配置选项的更多文档
如果您不想-R使用kludge,可以使用diff手册页中的WhiteSpace Error Highlight选项.
--ws误差高亮=
突出显示由color.diff.whitespace指定的颜色指定的行上的空白错误.是旧的,新的,上下文的逗号分隔列表.如果未指定此选项,则仅突出显示新行中的空白错误.例如--ws-error-highlight = new,old突出显示已删除和添加的行上的空白错误.all可以用作旧的,新的,上下文的简写.
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 2.11(2016年第4季度),此别名可能会替换为:
git config diff.wsErrorHighlight all
Run Code Online (Sandbox Code Playgroud)
请参阅docgit diff and ongit config.
Pau*_*ker 133
使用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等),它表明整个文件已经改变,但没有显示如何.
use*_*062 13
对于懒惰的答案浏览器,只需运行:
git config --global diff.wsErrorHighlight all
Run Code Online (Sandbox Code Playgroud)
然后git diff也会突出显示已删除行中的尾随空格。
使用git diff --color | less -R.将-R使得色彩控制代码人性化.
然后你可以使用less正则表达式搜索,例如
/[[:space:]]+$
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
45692 次 |
| 最近记录: |