当前位置:  开发笔记 > 编程语言 > 正文

Python编程中的制表符与空格

如何解决《Python编程中的制表符与空格》经验,为你挑选了19个好方法。

当我进行Python编程时,我总是使用制表符进行缩进.但后来我在SO上遇到了一个问题,有人指出大多数Python程序员使用空格而不是制表符来最小化编辑器到编辑器的错误.

这有什么不同?还有其他原因可以使用空格而不是Python的制表符吗?或者这不是真的吗?

我应该切换我的编辑器来插入空格而不是立即插入标签或继续像以前那样继续前进吗?



1> 小智..:

厌倦了追踪缩进拼写错误(8个空格?没有,7个哎呀9 ...)我将我的资源转换为"仅限标签".

1个标签== 1个缩进级别,句​​号

关键是:如果要将缩进显示为4,8或pi/12字符宽度,只需更改文本编辑器中的设置,不要弄乱代码.

(就个人而言,我使用4个字符宽度标签...但有些人更喜欢3或8个空格,甚至使用可变宽度字体.)


换句话说:"一个标签"是有意义的."空间"不是.它的含义取决于该特定文件的标准.考虑到Python /依赖于缩进级别,我倾向于选择明确表示这种情况的那些:制表符.
当然,如果你可能有你所说的一个一个空格缩进问题,你仍然可以使用标签(在标签前不小心输入一个空格).然而,当发生这种情况时,我们无法看到.至少在所有空间中,如果你犯了错误,事情就不会在视觉上排成一行.使用制表符,肉眼看不到空白错误.
@Bryan Oakley:但是如果你不小心以某种方式在你的空间中插入了一个标签,那么同样的情况也是如此 - 缩进仍然会混乱,你将无法看到它.我认为当缩进与python中的缩进一样重要时,您应该能够清楚地看到缩进,大多数编辑都可以向您显示缩进.@Ken:总是使用单个选项卡进行任何其他缩进(如括号内),你很好.我根本不赞成对齐.这不是ASCII艺术,它是代码!
对我来说,这非常类似于代码中"模型"和"视图"的分离,其中TAB是模型(即1个缩进级别),VIEW是如何渲染的(由编辑器作为4个空格,管他呢).使用空格就像尝试将视图信息硬编码到模型中一样.
@inkredibl当编辑器将Tab键映射到空格时,不会意外插入选项卡
^这个参数反过来完全相同:"为什么每个人都应该使用标签:如果每个开发人员在每个文件中都使用100%的空格,那就没关系.但是如果任何文件与空格和标签混合在一起,那么空格就会混乱"起来.
如果您需要缩进代码的唯一原因是创建新范围,那就行了.那么,分组()[]字符之间的换行怎么样?您可以(a)限制您的代码永远不要使用除最简单的生成器之外的任何代码,或者(b)使用在整个地方有滑稽缩进的代码,或(c)混合制表符和空格.所有这些对我来说都比使用4空间缩进更糟糕.
空格是延迟的,我找到并用标签替换所有4个空格的集合.这是标签的缩写.我不想在我的代码中出现一个错误.这适用于我正在使用的任何语言,而不仅仅是python.
@inkredibl因为一个意外的空间会在标签之间"隐藏" - 请参阅Bryan Oakley上面的评论,你最初是在回复.仅强制空格可确保不会隐藏任何空格.
@brittohalloran但是如果你已经使用空格作为标签(即插入和删除4个组或任何你喜欢的宽度),那么为什么不使用标签?你甚至可以节省一些空间.
更不用说标签使用的字节数减少了4倍
...受欢迎的赢家是TABS.:) indent -kr -i8这是Kernighan和Ritchie(和Linus)做对的事情."每个人都使用TAB"的优势在于每个人都可以选择他们希望TAB出现的宽度.在我的"python like language"中,解析器只是拒绝缩进的任何空格.python之所以遇到麻烦的原因是它试图变得聪明并且允许两种类型的缩进,但是不可能正确地做到这一点.如果他们只想要空格,解析器应该拒绝TAB进行缩进,反之亦然.https://www.kernel.org/doc/Documentation/CodingStyle
@brittohalloran无论如何,这只是一种"安全感",当你习惯于从标签中感到安全时更加糟糕,当它们发生时,你甚至无法想象frack正在发生什么.如果你想要真正安全的话,Python需要制作标签(或空格)这是一个语法错误,否则它只是一个糟糕的设计,你试图绕过它.无论如何它只是标签或空格,只要你是一致的(我个人并不坚持使用空格的人,可能只是因为我使用了很多不同的编辑器).
我也从空格切换到标签 - 理论上空间应该有用,但在实践中标签是优越的 - PEP-8错了.

2> Alexander Ko..:

因为PEP-8告诉我们使用空格.


我只能希望看到一个"新约",其中PEP-8改为推荐标签而不是空格.
PEP-8不适用于第三方项目.这是CPython自己的内部风格指南.盲目地遵循别人的标准而不理解为什么这些规则到位不会产生更好的代码.
paxdiablo:Python不知道你的tabstop设置了什么,你的文件只是放入一个制表符,你的编辑器就会显示它.总是使用4个空格的原因是你无法可靠地混合标签.如果你使用制表符启动一个函数,然后每个缩进完成4个空格,那么解释器会认为你在到达转换时已经结束了该函数.由于制表符和空格都是不可见的,所以当您第一次遇到这样的错误时,这是​​不明显的,并且当您在编辑器中看起来很好时,您会看到一条抱怨意外缩进的消息.
@bobpaul"理由"反过来也是如此.
@AramKocharyan,为什么不重要.只需要一个随意的选择,因为当从一个编辑器切换到另一个编辑器时,你总是会有混淆的可能性.
如果有的话,阅读所有的答案和评论让我注意到"房间里的大象".也许python4应该引入花括号,这将不再是一个问题:-P对我来说,按"Tab"按钮并获得4个空格而不是正确.(特别是在其他语言中,2个空格正在成为"标签"的标准.Yeeeech).让Tab成为标签是我的2c.
该规范没有提到原因
部分问题是如果Dev A的标签宽度设置为8个空格,然后Dev B的标签宽度设置为4个空格,一行为75个字符,Dev A的行宽度将超过80个字符.

3> pillmuncher..:

耶和华如此说:你要用四个空格缩进.不多也不少.四是你要缩进的空格数,你的缩进数应为四.八,你不要缩进,也不要缩进你的两个,除非你接着四个.标签是正确的. - Georg Brandl


这个答案的谬论是它暗示4个空间是一个理想的解决方案.虽然肯定是最常见/可接受的缩进方法,但是当你想到它时,插入4个字符代表一件事有点荒谬.我敢打赌,只需基于效率和简单性,标签将在长期内获胜.
由于太少明智的原因,在软件开发中有太多的正统观点.你的答案就是一个例子.
Downvoters!让我为您引用[PEP-8](http://www.python.org/dev/peps/pep-0008/#indentation):"每个缩进级别使用4个空格".
@shanusmagnus:你是对的.有太多[正统](http://www.youtube.com/watch?feature=player_detailpage&v=Pg7JfoocDJQ#t=31).但我的答案并不能代表这一点.这是一个笑话,基于一部着名电影的场景(来自Monty _Python_,得到它?哈哈.)此外,在一种语言中,这么多取决于惯例,有这个特殊的允许每个人移动东西而不必担心搞砸了格式化.是的,我认为应该在需要的地方挑战正统观念.四个spapces-indentation规则不值得挑战.
@JürgenA.Erhard"迷失"意味着你知道现在代表了有关冲突的最终状态(悲惨的陈规定型判断错误).未来时态并未考虑方向的现状.一个好的未来学家分析了可能性的领域.
@StevenMoseley:标签在十年前失去了这场战争.你扎根于2013年已经*失去*的那一方.:P

4> 小智..:

使用显示标签字符的编辑器(所有空白,就此而言).你是编程,而不是写文章.

我用标签.选项卡中没有单空间错误的空间(如果可以看到它们).问题是人们使用不同的编辑器,世界上唯一常见的事情是:tab == indent,如上所述.有些人将tab键设置为错误的空格数,或者手动操作并弄得一团糟.TAB并使用真正的编辑器.(这不仅与PEP相反,它也与C/C++和其他与空白无关的语言有关).

/从肥皂盒下来


@CurtisYallop这看起来很傻.专业人士应该信任专业人士,不要浪费时间.
争论对白点:在我的工作中,我们不允许查看标签/空格.这是浪费时间,因为我们使用C#编程,空格/制表符不会影响逻辑/正确性.如果我们看到它们,我们会变得烦躁并想要修复它们.而我的老板为我们的时间付出代价并不想为此付出代价.

5> jedmao..:

我在空格上使用制表符的主要原因是退格键.如果我在一条线上并且我想退格 - 只删除那一行上的缩进,我必须按空格键4x(如果它是空格); 然而,如果它是一个标签,我只需要打一次.

我将继续使用制表符,因为之前已经说过 - 它更容易从制表符转换为空格,但不是相反.

我想我想写一个简单的程序,用空格将代码转换为带有标签的代码,因为我讨厌仇恨空间.他们把我推到墙上!

哦! 使用箭头键向左和向右导航总是一个痛苦的屁股,当它是空格.

更新:Sublime Text 3现在删除带有退格键的完整软选项卡; 但是,箭头键导航仍然很乏味.

标签与缩进的空格

更新:我现在使用vscode并为它编写了一个TabSanity扩展来解决退格,删除和箭头键导航.

TabSanity扩展在行动中


如果您使用的是linux,那么有一个名为`unexpand`的程序可以将空格转换为制表符.(`expand`将制表符转换为空格.)
一个好的文本编辑器应该为你做任何你喜欢的选择.
vim(你正在使用vim,对吗?)在它的默认python语法模式下,会自动删除空格的shiftwidth.
我正在使用Notepad ++ for Python,它绝对允许我做一些间距设置,但我仍然有空格的箭头键和退格导航问题.
听起来不错,但是a!我没有使用linux。谢谢你的小费。

6> ctcherry..:

最"pythonic"的方法是每个缩进级别使用4个空格.然而,Python解释器将识别空格或制表符.唯一的问题是你必须永远不要混合空格和标签,选择其中一个.也就是说,规范建议使用空格,大多数开发人员都使用空格,所以除非你有充分的理由不这样做,否则我会说空格.


使用标签有很多很好的理由; 问题是:有什么理由不是吗?而据我所知,唯一一个是"谁写过PEP-8并不喜欢它们",这看起来有点弱.
恕我直言,反对标签的重大问题是代码经常使用多种工具查看或处理.(不只是"你最喜欢的文本编辑器").防爆.您可以查看git diff,电子邮件代码片段,使用Web源查看工具等.如果选项卡间距与您的编辑器不匹配,那些将显示一团糟.
这是一种语言不应该像这样的空白敏感.卷曲括号允许自动缩进.

7> Timmmm..:

据我所知,这里有标签与空格的优缺点.

标签的优点:

缩进,取消和遍历缩进所需的键击次数减少.(即使你的IDE有一些空间缩进的聪明,它也永远不会像制表符一样好.)

不同的程序员可以根据需要使用不同的选项卡显示大小.

你永远不能让光标"在里面"成为缩进字符.例如,假设您正在复制某些行,使用标签可以在行的开头附近隐约点击以开始您的选择,您将获得所有第一个标签.使用空格你可能会错过第一个空格角色,除非你击中它和边距之间的微小目标.类似于从行中删除缩进,如果光标位于四个空格缩进字符的中间,大多数编辑器都不能很好地处理按退格键.它通常会删除一个空格.使用标签,它按预期工作.

与其他语言保持一致,因此您无需设置编辑器,例如C++/Java选项卡和Python空格.

错误的缩进可能更明显(即额外的标签比额外的空间大得多).

标签的缺点:

大多数Python程序员都使用空格,因此你会违反惯例.

使用空格来对齐多行语句比使用制表符更容易.您可以使用制表符缩进,空格对齐,但在Python中似乎有点冒险!

有些人夸大了一些非问题:

    您可能会在带标签的缩进中获得杂散空间,这会使事情搞砸:几乎所有的IDE /编辑器都支持可视化空白,而且几乎可能会在空格缩进中获得杂散标签!无论如何,我无法看到这是一个常见的错误.此外,大多数缩进错误都将被Python捕获,好的IDE应该能够突出显示不同的缩进.

    你不能轻易地用标签对齐:如果你想进行字符完美对齐,这是正确的,但PEP-8建议不要这样做,而且无论如何Python都不能很好地适应多行语句.

    人们有在他们的编辑选项卡中显示的大小区别设置,使您的代码将在不同的地方看起来不同:是的,这实际上是标签的一个有益的特征.

我已经开始使用空格来与其他Python代码保持一致,但说实话,它很令人沮丧,我可能会改回标签.很大程度上取决于IDE的功能,但根据我的经验,对空间缩进的IDE支持不如使用选项卡那么好.

因此,除非您真的不喜欢与大多数(可能不是全部!)Python代码不一致,否则请使用制表符并打开空白可视化和缩进突出显示(如果可用).对我来说最大的原因是易于选择和(相当重要的IMO)击键减少.有些公约是愚蠢的.

更新:我发现全世界有一个编辑器(不包括像Vim这样的废话)正确支持空格作为缩进:Atom.它有一个名为"atomic tabstops"的选项,它使4个空格的行为就好像它在所有方面都是一个标签(除了能够调整它的大小).可悲的是,Atom是一个非常缓慢而臃肿的编辑器,但这是一个很棒的功能,如果你被迫使用空格,这可能是一个不错的选择.希望有一天其他编辑会开始支持它.这是VSCode的问题.


我想我对你的观点有不同意见:-)我原则上更喜欢标签,但在实践中,当你无法控制观众时,空格会更好,例如基于网络的观众(GitHub) ,Trac浏览器,...),而你或多或少总是控制编辑器(你用它编写).此外,无论选择多么随意,都需要做出选择,并且它是由PEP-8完成的(否则你可以根据协作环境最终得到混合类型).

8> Greg Hewgill..:

我最近发现了一篇题为" Python:关于缩进的神话 "的文章,讨论了这个问题和相关问题.这篇文章有充分的理由在编写Python代码时建议使用空格,但肯定存在分歧的余地.

我相信大多数Python程序员都只使用空格.


@thegreatcoder:我已将链接固定为archive.org副本。

9> Rod Daunorav..:

使用编辑器,当您按TAB键时,可以向空格键入插入空格,而不是插入\ t字符.然后忘记它.



10> Robin..:

我非常强烈地认为,无论历史惯例如何,制表符都是更好的选择,并且应该在未来编写的每个Python代码行中替换空格.就像踢出一个无能的暴君一样.我的理由是:作为核心价值的简单.使用两个或四个字符作为一个语义任务?除了传统,IMO没有任何理由.



11> Ignacio Vazq..:

你可以混合标签和空格......但是一个标签被认为是与8个空格相同的缩进,所以除非你的编辑器被设置为将标签视为8个空格,否则混合它们时会遇到麻烦.


Python 3不会让你混音.

12> Ikke..:

使用空格而不是制表符时遇到的唯一不便是您无法轻松删除缩进级别; 你必须删除四个空格而不是一个标签.


大多数为编程而设计的编辑器都会.如果您的编辑器缺少此功能,则可能缺少许多其他有用的功能.
许多编辑都有一个"unindent"击键,例如Shift-Tab或Ctrl- [.有些编辑甚至可以在行右侧的Backspace中删除4个空格.
Ikke - 你在用什么?Vim/GVim当然可以.emacs也是如此.我相信TextPad和Notepad ++也可以.如果你的锤子坏了就不要怪指甲.
问题在于它是"一些"编辑.大多数编辑都不会.
如果编辑器无法进行智能缩进和不确定,则可能更不可能安全地处理选项卡,尤其是在源文件混合制表符和空格时.

13> Skippy VonDr..:

标签规则.嵌套循环的相同参数,您希望将外循环"返回"1级.提示:如果要将旧的space-riddled python代码转换为选项卡,请使用TabOut实用程序作为http://www.textpad.com/add-ons/上的可执行文件.


Erik:在任何情况下你都不需要*精确对齐代码(而PEP-8建议不要使用它).因此,在易用性和节省时间以及空间的完美对齐能力之间进行权衡取舍.
选项卡不规则,因为:在某些情况下,您需要将某些代码精确缩进到一个空格精度.在这种情况下,要么只使用制表符不允许你实现它,或使用制表符*和*空格将违反不混合两者的硬规则.

14> freespace..:

当您在文件中混合缩进时,会发生编辑器到编辑器错误.这产生如下:一个代码块用4个空格缩进,然后一个缩进级别"in",它用缩进键缩进.现在做这个的异教徒(混合标签和空格)有它所以他的标签也是4个空格,所以他看不出任何问题,Python看不出任何问题.

现在我们的受害者来了,他的标签设置为8个空格.现在,我们的受害者认为代码看起来全部被破坏,并通过删除一级缩进来修复它,现在使代码看起来仍然是2级缩进,但实际上一个级别.在这一点上,所有的地狱都破裂了.

这里的教训是,你永远不应该混合标签和空格.如果您坚持这一点,那么无论您个人使用哪种代码,都可以轻松地将代码重新插入空格或制表符.确保不混合制表符和空格的最佳方法是始终python使用-tt,这会在制表符和空格混合时产生错误.

对于制表符和空格,我个人使用制表符,使其与外观分开缩进 - 当使用制表符缩进代码时,更改代码的外观要比使用空格更容易.我知道这与99%的Python程序员所做的相反,但这是我个人的偏好,并且在任何情况下很容易将选项卡式文件转换为间隔文件.反过来并不总是正确的,因为你可能会意外地敲掉字符串中的4个空格等.


因此,除非混合使用制表符和空格(我同意这是不好的),否则除了约定外没有其他原因了吗?

15> Perkins..:

当我第一次学习Python的时候,由于大多数使用它的语言都不灵活,我因为大量的空白空间而被推迟了.也就是说,我对Python理解各种缩进样式的能力印象深刻.在考虑用于新项目的样式时,我认为记住两件事是很重要的.

    首先,了解Python如何解释缩进很重要.Bryan Oakley在使用制表符时提到了逐个错误的可能性,但实际上这对于默认的解释器设置是不可能的.来自O'Reilly Media的学习Python有一个更好的解释.

基本上,有一个变量(可以通过在源文件#tab-width:的顶部添加注释来更改)来定义选项卡宽度.当Python遇到选项卡时,它会将缩进距离增加到下一个选项卡宽度的倍数.因此,如果在文件的左侧输入一个后跟选项卡的空格,则tab宽度的下一个倍数为8.如果输入选项卡本身,则会发生相同的事情.

通过这种方式,如果您的编辑器配置正确,使用选项卡,甚至混合选项卡和空格是安全的.只要将编辑器的制表符设置为与Python制表符宽度声明相同的宽度(如果不存在则为8).除非您在文件中指定制表符宽度,否则使用制表符宽度不超过8个空格的编辑器通常是个坏主意.

    其次,Python的大部分语法设计都是为了鼓励同一个项目中程序员之间的代码可读性和一致的风格.也就是说,对于任何特定的项目来说,问题变成了使代码最能被项目人员阅读的代码.当然,保持一致的缩进样式是个好主意,但根据平台和项目使用的编辑器,不同的样式可能对不同的项目有意义.如果没有令人信服的理由不符合PEP 8,那么这样做是有意义的,因为它符合人们的期望.

我遇到过成功使用标签和空格混合的项目.基本上空间用于缩进小部分,其中它在缩进部分的事实相对不重要; 标签用于吸引读者注意大型结构特征.例如,类以tab开头,函数内部的简单条件检查使用两个空格.

在处理缩进多个级别的大块文本时,选项卡也很有用.当您退出3-4级压痕时,使用正确的选项卡排队要比排列适当数量的空格容易得多.如果项目不使用PEP 8建议的样式,最好将样式指南写入某个文件,以便缩进模式保持一致,其他人可以明确地阅读如何配置其编辑器以匹配.

此外,Python 2.x可以选择-t发出有关混合选项卡和空格的警告并-tt发出错误.这仅适用于同一范围内的混合制表符和空格.Python 3假设-tt并且据我所知,没有办法禁用该检查.



16> Zhehao Mao..:

每个人对缩进代码的数量都有不同的偏好.假设您与某人共享代码,并且他或她对缩进有不同的偏好.如果缩进位于选项卡中,则您的朋友可以随时更改其编辑器设置中的选项卡宽度.但是,如果缩进位于空格中,如果您想要将源代码设置为其首选项,则您的朋友实际上必须更改源代码.然后,当您收到朋友的更改时,您可能会决定将其更改回您的偏好.在这种情况下,您要么必须处理来回更改缩进级别的乏味,要么一个人必须在缩进级别采用其他人的首选项.如果你和你的朋友都使用标签,那么你有不同的偏好这一事实是没有问题的,因为你可以在代码保持不变的情况下看到不同的缩进级别.这就是为什么在我看来,制表符比所有编程语言中缩进的空格更好.


@kigurai不,PEP-8*建议*应该在制表符上使用空格,它只*表示不应混合制表符和空格.PEP-8也不是"Python指南",它是Python标准库的样式指南,而不是人们似乎认为应该遵循的一般样式指南.
他们是否提供该建议的任何理由?这些"编码风格"偏好中的大部分都是完全随意的,仅仅是为了确保项目与多个开发人员的一致性.但是,如果我们都使用制表符,则不需要强制缩进是特定数量的空格.每个人都可以将标签设置为看起来像你想要的空间.

17> David Stone..:

我主要是一名C++程序员,但有时我的项目包括少量的Python.我使用制表符缩进我的C++代码.这意味着我有三个选项:

    在C++中使用制表符,在Python中使用空格.这允许我的C++文件保持原样,我遵循PEP-8建议,但我在我的项目中不一致.

    更改我的C++代码以使用空格.这允许我项目中的所有文件保持一致,并且我遵循PEP-8建议,但要求我返回并更改我的所有C++文件.我认为这是件坏事,因为我更喜欢标签.

    在我的C++代码和Python代码中使用选项卡.这使我的整个项目保持一致,并允许我使用我喜欢的缩进样式:tabs.缺点是我没有遵循PEP-8标准.

对于我的项目,我通常选择3.



18> cfi..:

经验和PEP-8都清楚地得出结论,TAB应避免混合空间和s.如果你想混合它们,你必须在IDE中可视化空白 - 但是你放弃了Python缩进的优势,使范围很容易看到.可视化IDE中的空白会使显示混乱.

如果它是TAB 空格,那么它必须是空格,原因很简单:人们可以切换几乎所有的IDE和文本编辑器来自动用空格替换制表符,但事实恰恰相反.

即使有IDE可以自动将行中的前导空格转换为制表符,但这最终会导致制表符和空格的混合.考虑多行语句,例如带有大量参数或doc字符串的函数调用.虽然"ascii-art"也应该被避免,但是在前导标签之后留下一个空间可能很容易发生.

其他答案带来了几个有利于标签的论据:

击球TAB更有效率.当然这是事实,但是当按下Tab键时,所有文本编辑器都允许立即插入所需数量的空格

只需删除一个选项卡而不是2/3/4/8个空格,缩进/ Dedenting就更容易了.没错,但是大多数文本编辑器都允许自动执行此操作:块选择,缩进/ dedent是编程编辑器的基本功能,如注释/取消注释.如果文本编辑器没有实现它,它至少应该有一个易于使用的宏功能,可以实现相同的功能.

不同的程序员喜欢不同的缩进宽度.这是事实,TAB只有使用s 的明显优势.问题是与其他个人和/或团队的互动.为了在现实世界中工作,每个人都必须同意所有使用TABs.由于这没有发生,它无论如何都不起作用.在现实世界的场景中,有一组项目同意的编码指南,并且缩进的方法肯定是其中之一 - 即使在其他编程语言中,其含义仅在视觉层面上"仅".

Imho,这里缺少大多数(如果不是全部)答案的要点是团队或个人之间的互动,特别是在一开始就不知道参与者名单的情况下.当代码满足代码时,所有代码都必须使用制表符或者所有必须使用空格.如果没有最终遇到功能问题,它就无法混合.人不完美.工具并不完美.这就是我们不应该使用TABs 的原因.

没有Greg在他的回答中提供的链接,没有答案是完整的:Python:关于缩进的神话



19> Erik Kaplun..:

有一种情况,标签根本不起作用,即:根据您使用的编码样式,您可能需要将某些代码行缩进到一个空格的精度,即:

def foobar():
    x = some_call(arg1,
                  arg2)

在这种情况下,使用纯粹的标签根本不起作用; 使用主缩进的制表符和子缩进的空格将起作用,但会违反不混合两者的硬性规则.

但是,当使用避免上述代码示例中的情况的编码样式/约定文档时,情况并非如此.


不要包装这样的参数,Python不是Objective-C.(是的,我知道PEP-8建议它,但是PEP-8并不完美.)通过向下移动所有参数(第一行没有)缩进两次来避免问题(以区别于缩进一次的代码块).
我会像这样混合标签和空格:http://pastebin.com/5Cxer7E1.当空格位于给定行中的制表符之前或制表符和空格不一致地跨行使用时,混合制表符和空格主要是一个问题.在链接示例中,选项卡提供初始缩进,而空格提供对齐.
推荐阅读
雨天是最美
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有