为什么空行缩进不好?
Why is indentation in empty lines bad?
我知道的每个自由/开源软件项目都有禁止在代码中尾随空格的规则。但是我认为在下一行继续当前的缩进是很自然的:
int main()
{
....int a = 42;
....
....return a;
}
但是git还是会抛出警告。所以我的问题是:为什么内的制表符当前缩进不好?
我不是在寻找"总是这样做的"这样的答案。让我们假设在整个项目中是一致地缩进的
这可能是因为合并补丁与无用的空白比它应该更难。
diff(1)
和patch(1)
将空格和制表符视为重要内容。(问任何Makefile
或.py
源文件-他们是重要!)如果你的 "blank line"有四个空格,而我的 "blank line"有八个空格,那么我们之间共享补丁的任何尝试都会因为非常微不足道的原因而失败。
当然,如果你大量改变代码块的缩进,你将不得不做一些工作来使补丁无论如何都应用。但是试图在看起来空白的行上跟踪合并失败是痛苦的。(我在这方面浪费了太多时间。是的,vim
listchars
可以帮助,但是一直打开listchars
阅读代码也很烦人。)
这对于习惯于使用段落导航在代码中跳转的vi用户来说也是不礼貌的。有时我在vi时这样做,当我跳过几个函数时,这很令人惊讶,因为看不见的字符说这实际上是前一段的一部分。
我认为这归结为"不要在你的代码中隐藏多余的意外字节"。
正如@sarnold指出的那样,冗余的惊喜字节使补丁和差异不必要地混乱。
相关文章:
- clang格式:宏的缩进
- C++setiosflags函数操纵器-未确定的缩进
- VSCode 中带有 C/C++ 扩展名的多行注释缩进错误
- 如何使用c++调整文本文件中代码的缩进?
- 如何在C++中制作 clang 格式的缩进 extern C 块?
- 在 vscode 中使用特定缩进/对齐 C/C++ 自动格式化
- "If Else"语句缩进在C++中是否重要?
- CLion 行注释的不一致自动缩进
- 如何在用户按Enter键时控制wxStyledTextCtrl中的行缩进
- 如何在 QLabel 中将缩进设置为 QImage
- 如何使 clang 格式将所有详细信息命名空间缩进一个
- 是否可以更改 Xcode 缩进注释行的方式
- 用libxml2缩进合并的XML文件
- 精美的C 容器,具有级别的缩进
- 如何在使用clang-format访问修饰符后缩进
- 如何使用Visual Studio轻松缩进标头声明
- 禁止 emacs 中的 c++ 命名空间缩进
- 我怎样才能让 Emacs 用我的代码缩进我的 // 注释
- 正在vim中加载google.vim缩进文件
- 为什么空行缩进不好?