drupal.org中托管的代码的编码标准建议使用两个空格来缩进代码。其他网站建议使用制表符来缩进代码。
在每种情况下,每种情况下适当的缩进特征是什么?请解释您给出的答案。
drupal.org中托管的代码的编码标准建议使用两个空格来缩进代码。其他网站建议使用制表符来缩进代码。
在每种情况下,每种情况下适当的缩进特征是什么?请解释您给出的答案。
Answers:
空间
根据您的环境,选项卡的列数可以不同,但是空格始终是一列。
就构成缩进的空格(或制表符)而言,在整个代码中保持一致比使用任何特定的制表符停止值更为重要。
标签
现在,当然,一致性比任何一个都重要,而且良好的IDE使差异可以忽略不计。就是说,此线索的重点是一场神圣的战争,因此:
我更喜欢标签:
使用选项卡可以缩进行的开头,每个缩进级别一个选项卡,然后让每个人都选择他们想要的宽度。
如果要在一行中对齐字符,请使用空格,因此无论制表符大小如何,它们始终会对齐。
并找到并打败所有早期让这些愚蠢的事情成为问题的软件作者。
(严重的是,为什么还要讨论这个问题?接下来,您将告诉我您也想使用多个字符作为换行符!)
标签
制表符完全无用的地方应使用空格。
即使用于对齐参数和注释,选项卡仍然可以更好地工作。
制表符的所有参数在理论上都是很好的。但...
在理论上,实践和理论是相同的。实际上,事实并非如此。
是的,使用标签可以确定缩进级别。是的,您可以结合使用制表符和空格来对齐内容。在理想的世界中
实际上,您看不到空格和制表符之间的区别,在移动代码时它们似乎总是混杂在一起,而在另一个将制表符设置为8列的程序中查看代码是很麻烦的。
我曾经使用标签。然后,我开始作为团队的一部分工作并共享代码。我很快成为空间的拥护者。因此,尽管我可以同情标签的乌托邦,但我无法想象不使用空格。
public:
C ++类声明中的内容使用一半大小的缩进,以便它们看起来更漂亮(尤其是在嵌套类中)。
一些相关的有趣观点:
胜利的标签。
I.绝对。讨厌。4.空格。
为什么?主要是因为我厌倦了使用键盘浏览代码并不得不不断点击left
left
left
left
以缩进一个缩进的麻烦。这是从早期版本的Notepad ++甚至普通的Windows记事本中诞生的,这些记事本中没有格式按钮。当我在其他所有地方都使用4时,人们只使用3时,我遇到了很多问题。
另一个原因是制表符专门用于缩进,后来才被用于导航。space
space
space
space
当简单的tab
方法可行时,我们为什么要这样做?当简单的选项卡和首选项可以工作时,为什么IDE必须正确处理2-5个间隔的代码和格式?
不幸的是我是少数。
w
和b
(或e
和ge
)跳过空白和标记:P
我个人喜欢在所有内容中使用制表符,因为每个开发人员都可以控制每个制表符的缩进量。这样,您就可以灵活地进行显示。
话虽如此,我通常会模仿文件中的任何编码样式(因为我花了大量时间进行维护工作)。
我认为没有适当的缩进(至少在没有小小的战争的情况下)。
我个人喜欢四个空间。它们使我能够更快地阅读代码,并且在每个编辑器(甚至是Vi)中看起来都一样。
softtabstop
选择和retab
和retab!
命令。
空格,因为当您在代码,函数参数列表,复杂的多行表达式或类似性质的右边对齐注释时,您希望您的漂亮作品适合所有人。如果您使用制表符,并且允许人们以不同的方式设置其制表符,则除了最简单的代码缩进以外,其他所有制表符都将中断对齐。
此外,显而易见的是,世界上每个人都应该使用vim,这使得缩进,缩进和浏览“制表位”变得很简单,即使在缩进空间的文件中也是如此。
制表符是自然的和正统的选择,因为按定义它们用于缩进。
不幸的是,制表符的实现不均匀,因此唯一的现实解决方案是4个空格。
为什么有人不能实现这一点:
每个人都很高兴,因为他们都看到了自己的“格式”
这样难吗?
indent
程序。
空格或制表符-Atwood真正说的是选择一件事并在您的项目中保持一致。代码格式化的唯一圣杯是确保其格式一致,以便在您之后维护您的代码的精神病患者不会被迫永久解决这种情况。
就是说,如果您使用的是Python或其他任何将空格作为实际编程构造的语言,那么使用制表符就无法想象。
我是一个4位数的家伙,制表符不一致。
显然,制表符在Delphi中弄乱了东西,所以我不在Delphi中使用制表符。
但是,我使用Emacs进行其他所有操作,并且始终使用制表符,因为制表符正好位于我希望它们移到的位置。
答案是,在每种情况下都不可能有一个适当的缩进字符。使用字符进行格式化是不灵活的,并且在团队中使用不同样式时可能导致冲突。
使用不同的格式化样式完美而灵活地格式化代码的唯一方法是虚拟地进行编码,即没有任何缩进字符。我知道唯一支持此功能的代码编辑器是以下示例中使用的代码编辑器:
为了证明虚拟格式,下面的截图是从使用这种压痕法的XSLT编辑器*(也有一个简短的视频在这里)。为了说明起见,XSLT中的每个字符都以黄色突出显示,以使内容中唯一的制表符或空格字符清晰可见。代码缩进由编辑器的渲染系统调整左边界(背景为白色)来处理。
唯一的前导空格字符在Books行之前,因为这是文字文本内容,而不是代码,因此必须保留这些空格字符。
使用虚拟格式时,您可以选择缩进宽度以适合环境和缩进样式,而不会影响源文件中的任何字符。如果需要平整的代码视图,甚至可以将缩进宽度设置为0,如下所示:
为了与空格字符格式进行对比,在编辑器中打开的没有虚拟格式的同一XSLT将由该编辑器的自动格式化程序转换为以下格式:
上方屏幕截图中较大的空白黄色块清楚地显示了常规编辑器的格式化程序添加的空格字符。不幸的是,现在无法将它们与实际内容区分开,因此必须修改XSLT才能更正此问题。
摘要
XSLT可能是一个极端的情况,但是该原理对于许多编程语言都适用:字符应用于内容,格式化时应寻求替代方法。
**披露:具有虚拟格式的XSLT编辑器是由我自己的公司开发的*
已经提出了很多论据,但是没有人提到我们将来的发展方向。
制表符或空格!
理想情况下,代码应被视为数据,而不应以任何特定的文本格式存储。任何开发人员都可以应用自己的首选视图。此外,该视图不应仅局限于文本,还可以包括表格,颜色选择器和数学公式。
这个想法不是太牵强。是JetBrain的面向语言的编程编辑器元编程系统(MPS)首先使我意识到,这解决了整个讨论,同时增加了许多其他可能性。(是的,这可以通过编辑器插件来实现,但是与MPS所采用的方法相反,直接处理文本会增加很多不必要的复杂性。)
与制表符和空格相反,直接在抽象语法树上工作几乎没有缺点。为了使该技术成熟到商业上可行的产品,需要的只是这些。这种现象的最初迹象正在显现。Realaxy很大程度上建立在商业动作脚本编辑器MPS的基础上,因此被创建。
我希望看到其中一个大公司跳上这项技术的概念,看看会发生什么!
都不是更好,也不是更坏。唯一重要的是要保持一致。
如果您是一个团队,请选择您个人喜欢的任何东西。考虑您喜欢的编辑器的默认行为,但是请选择您喜欢的任何东西。
如果您在团队中,请执行团队的工作。期。
在我的各种工作中,我使用了两个空格,四个空格,八个空格,制表符,空格和制表符,我想我可能也使用了一个空格。我告诉编辑器该怎么做,然后我再也不考虑它了,编辑器会确定细节。
唯一的另一件事是确保您选择一个智能编辑器。Emacs还是VI?现在这是一场圣战,我愿意打仗:-)