Sublime Text 在轻松切换使用制表符和空格缩进代码方面非常出色。 更重要的是,它可以轻松调整与您的偏好不符的代码缩进。 我认为我应该将其整理出来以供参考,因为某些转换需要遵循特定的步骤序列。
第一步是确保您的用户首选项符合您的喜好。

我更喜欢空格,所以我的设置如下
{
// other stuff
"tab_size": 2,
"translate_tabs_to_spaces": true,
// more other stuff
}
根据您的喜好进行调整。
您可以从右下角覆盖任何给定文件的这些设置。

这也是修复不符合您喜好的文档的中心。
从制表符更改为空格(相同缩进级别)
这是一个目前使用制表符的文档。 我可以判断,因为我选择了文本,并且在空白处有短划线而不是点。 短划线是制表符,点是空格。 此外,在右下角,我可以看到它显示“制表符大小:2”。

您可以看到这些制表符宽 2 个空格。 假设我想切换到空格,并且对每个制表符 2 个空格感到满意,我只需从该菜单中选择“将缩进转换为空格”。

在这种情况下,我就可以了。
从制表符更改为空格(不同缩进级别)
假设直接从制表符转换为空格对我来说不起作用。 假设制表符级别设置为每个制表符 6 个空格,我想转换为空格,但每个缩进只有 2 个空格。 这里的技巧是首先在制表符中调整间距,然后转换。

从空格更改为空格(不同缩进级别)
如果您的文件以您喜欢的空格格式存在,但它使用的是 4 个空格而不是 2 个空格,该怎么办? Sublime Text 仍然可以在这里提供帮助。 您使用制表符可以具有可变长度的功能。 因此,首先转换为制表符,调整宽度,然后切换回空格。

从空格更改为制表符
我认为我们现在已经掌握了窍门。 如果您更喜欢制表符,则可以反向执行此操作。

我认为您可以从那里推断出其他切换方案。
我认为没有任何一种情况您无法通过这种方式调整到您喜欢的状态。 如果您发现自己手动调整缩进(缩进本身一致),请停止,您可以找到一种方法使用设置来修复它。
如果您想在下面讨论制表符与空格,尽管来,但我可以告诉您,我并不在乎。 我主要关心的是任何特定项目对此保持一致并强制执行它。
.editorconfig
还值得一提的是:有一项名为 EditorConfig 的功能。 您将一个名为 .editorconfig
的文件放在项目的根目录中。 如果有人在支持它的编辑器中打开该项目,则这些设置将被采用。 有一个 用于 SublimeText。
该文件可能如下所示
# editorconfig.org
root = true
[*]
indent_style = space
indent_size = 2
end_of_line = lf
charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = true
[*.md]
trim_trailing_whitespace = false
非常有用。 我已经使用 Sublime 很长时间了,但没有注意到所有这些可用功能。 谢谢。
不错的技巧,谢谢。 您在屏幕截图中使用的是什么主题和配色方案?
他使用的是 Twilight,它随 Sublime Text 提供。
只需点击首选项 > 配色方案 > Twilight
你是 Sublime 粉丝吗? 我自己使用 Coda。 您尝试过其他文本编辑器吗? 如果有,是什么让您继续使用 Sublime? 还是仅仅是习惯/熟悉?
我使用过 Coda,但切换到 MacRabbit 的 Espresso,我更喜欢它。
Piers,
我过去使用过 Coda,但决定尝试 Sublime Text 2,因为我听说过它有很多优点。 我现在已经使用它几个月了,我可以告诉你我永远不会再回到 Coda 了。
Sublime Text 拥有大量功能,使编码更加有趣。“转到任何位置”和“包控制”就足以说服你。 学习快捷键以最大程度地减少鼠标使用是件好事。 哦,它还非常快!
Sublime Text 就像一块美丽的白色画布,您可以根据自己的需要在其上作画。
我过去会在 Coda 和 Espresso 之间切换,只要其中一个更新了,我就喜欢它们俩。
然后出现了 Sublime,就没有回头路了。 我们的整个开发团队都放弃了他们多年来最喜欢的编辑器,并在彼此几周内都转向了 Sublime。 它超级快、可扩展、简洁、适应性强,并且感觉总能“保持新鲜”。
Chris,干得好。 很多人会发现这很有用,包括我自己。 是否有快捷键可以执行此操作?
这是 Sublime Text。 当然有快捷键。 ;-)
打开命令面板(Windows 上按 Shift + Ctrl + P,Mac 上按 Shift + Command + P)
开始键入,例如“contabs”(这应该会获取精确的项目)或仅键入“tabs”(按向下箭头选择正确的项目)
按 Enter
类似地,“conspaces”或“spaces”。
……如果这对您来说还不够快,您可以在键绑定中定义一个实际的快捷键。
谢谢 Mike,我想我会定义我自己的快捷键。
Sublime 宏将 TwoSpace 转换为 FourSpace
convertTwoSpacesToFour.sublime-macro
]
你好,Chris!
请告诉我你为什么更喜欢空格?
谢谢。
我过去也更喜欢空格,直到一位同事指出,如果我们使用制表符,每个开发人员都可以配置他们自己的编辑器以使制表符成为他们喜欢的任何宽度。 使用空格,我们都必须使用第一个在每个文件上工作的开发人员使用的空格数,并且必须尝试作为一个团队就标准空格数达成一致。
同意。 我也认为制表符使更容易获得更一致的层次结构。 我见过很多用空格缩进的代码中的错误,其中存在不应该存在的额外空格。 制表符似乎使层次结构错误更加明显。
没错,就是这样。
是的,是的,是的。
这是我支持使用 Tab 键的最大理由。使用 Tab 键,每个开发者都可以使用自己喜欢的缩进空格大小。这肯定比强迫开发者离开他们的舒适区更有效率,不是吗?
人们害怕 Tab 键。在等宽字体中,一个字符等价于任意数量的空格,这其中似乎有一些巫术般的魔力。
话虽如此,我更喜欢 Tab 键,因为它符合我想要实现的目标。我想要实现的是 1 级缩进。
我曾经使用过空格一段时间,因为似乎只有使用纯 ASCII #10 才能算得上是真正的开发者,而且我确实认为一些旧的文本编辑器在处理空格以外的任何字符时都会有问题,并且会使文件扁平化。
然而,在当今这个拥有代码补全、语法高亮和用于控制空格的自动化工具的时代,用缩进级别而不是空格数来思考似乎更有意义。
随着时间的推移,我觉得使用空格就像使用纯 CSS 而不是预处理器一样过时。当然,也许我错了。他们对汽车的手动变速箱也说过同样的话。
嗨!
不错的技巧!
不过要提醒一下:不要在修复 bug 或进行代码更改的同时修改缩进设置……你的源代码控制将会把“有用的”工作埋在大量缩进更改中。
将缩进更改保留在它们自己的“修复”提交中;你的同事会感谢你的……
我遇到的问题一直是,我们的 Windows 开发人员,尤其是那些使用 Visual Studio 的开发人员,使用空格进行缩进。我会在 Sublime 中修复文档,但随后由于整个文件都因空格而发生更改,导致文件比较变得很麻烦。
Steve,为什么不更改 Visual Studio 设置以使用 Tab 键?它有类似的功能,“使用 Tab 键”、“Tab 宽度”等。
非常方便,没有什么比办公室里和 Git 拉取中发生的“空格与 Tab 键”之争更糟糕的了……
嘿,Chris,很棒的一系列技巧。您是如何在文章中制作那些漂亮的动画 GIF 的?
LICEcap。 http://www.cockos.com/licecap/
竖起大拇指 :) 非常棒的信息,您为开发者撰写了很棒的资源。@Chris,非常感谢。
不错!我一直在寻找适用于 Sublime Text 的类似于 re-tabify 的解决方案。首先转换为 Tab 键对我来说是缺失的一环。
感谢这篇文章,Chris。自从在 Lodge 开始您的课程以来,我就购买了 Sublime Text 3 用于使用。我使用了大约 16 年的 Dreamweaver,因此我正在寻找一些可以提供一些 DW 优点的插件,例如代码重新格式化以快速整理缩进。另外,我仍在使用 DW 进行 FTP。有没有人可以推荐一些喜欢的插件?
此外,有哪些好的插件评论资源?我不想在没有一些好的推荐的情况下从众多列出的插件中选择。我使用 Emmet 并非常喜欢它。谢谢。
我发现自己经常需要重新缩进代码块,要么是因为我移动了代码块,要么是因为我试图在其他地方重用它。对于那些正在搜索的人,该命令位于“编辑”->“行”->“重新缩进”下。
首先选择一个代码块,它将根据其周围环境重新缩进该部分。
这些片段很棒。我经常使用 Sublime,但从未想过它有如此强大的功能。再次感谢您,Chrish。
Sublime Text 确实很棒。它提供了许多功能的详细说明,确实如此!
为了更快地在 Tab 键和空格之间切换。
快捷键可以是
这是一个方便的工具。实际上,我在 Sublime Text 中浏览选项时发现了它。
我认为 Coda 也是一个不错的应用。
很棒的信息。我使用 Sublime 已经 3 年了,但我没有注意到如此强大的功能。非常感谢您。