使用制表符而不是空格时保持最大行长度?

各种语言的风格指南建议最大行数为80-100个字符,以便阅读和理解。

我的问题是,如何使用制表符缩进符合行长限制? 因为,如果在编辑器中将选项卡的长度设置为2,则其他人的编辑器中的相同代码可能超过 80个字符,选项卡长度设置为3/4/6/8。

有人建议我在8个字符的脑海里看到我的标签长度​​。 这是不现实的,不会让我专注于编程,因为我必须检查每一行。

那么,你怎么做(如果你只使用代码中的选项卡)呢?


几乎所有的语言都有一个制表大小的约定。 大多数项目都有一个制表符大小的约定,通常(尽管不总是)与语言的制表符大小相同。
例如,Ruby是2,Python和PHP是4,C是8等。

如果没有明显的项目标签大小,坚持项目的标签长度​​或语言标签大小,是迄今为止最为理智的事情,因为几乎所有人都会使用这个标准,除了少数几个人以外。
设置不同制表符大小的能力可能是使用制表符而不是空格的最大优点,并且如果用户想偏离标准,那很好,但是没有合理的方法来遵守最大行长度所有可能的情况。

您可以将其与大多数网站进行比较; 他们被设计为100%缩放级别。 放大或更改字体大小几乎总是有效,但一些小问题可能会被打破。 实际上不可能为每种可能的缩放级别和字体大小进行设计,因此人工制品被接受。

如果您想确保代码符合行长度和制表符大小,您应该使用空格,而不是“真正的”制表符。 就我个人而言,我觉得这些指导方针正是:指导方针; 而不是严格的规则,所以我认为这不重要。 不过,其他人的意见在这个问题上有所不同。

就我个人而言,我喜欢制表符,因为一些现在并不重要的原因,但是只是暂时偏离了标准,通常在编辑重嵌套代码时,我希望更清晰一些我正在编辑的块。


你可能不会经常写很长的行,所以你可能不会经常重新格式化你的代码。

因此,您可以使用一种方法,定期检查文件是否符合规定,并修复任何不符合规定的内容(例如,在将文件提交给代码审查之前可以执行此操作)。

这是一个非常简单的Python脚本,它接受stdin上的文件并告诉你哪些行超过80个字符:

TABSIZE = 8
MAXLENGTH = 80
for i, line in enumerate(sys.stdin):
    if len(line.rstrip('n').replace('t', ' '*TABSIZE)) > MAXLENGTH:
        print "%d: line exceeds %d characters" % (i+1, MAXLENGTH)

您可以通过多种方式扩展它:使其具有文件名/目录并自动扫描其中的所有内容,使制表符大小或长度可配置等。


一些编辑器可以设置为插入一些等于您的制表符长度的空格,而不是实际的制表符(Visual Studio默认启用了此功能)。 这使您可以在编写代码时使用Tab键来缩进,但也可以保证当别人读取代码时代码看起来是相同的,无论它们的标签长度​​是多少。

如果读者也需要编辑代码,事情会变得更复杂一些,几乎每个开发团队都是如此。 作为编码标准的一部分,团队通常会有制表符与空格和制表符长度。 每个开发人员都有责任使自己的提交符合标准,通常通过设置自己的环境来自动执行此操作。 不符合标准的更改可以恢复,并且开发人员在进行整合之前将其修复。

链接地址: http://www.djcxy.com/p/88851.html

上一篇: Maintaining Maximum Line Length When Using Tabs Instead of Spaces?

下一篇: What are the allowed tags inside a <li>?