如何在Atom中更改缩进模式?

210

我还没有弄清楚这个问题。Atom似乎默认使用空格作为缩进模式,但是我更喜欢使用制表符。Sublime Text内置了切换和转换缩进的功能。

有人发现如何改变Atom的缩进模式了吗?

以下是来自Sublime Text的一些屏幕截图:

Sublime Text缩进菜单打开 Sublime Text缩进菜单


4
要转换缩进,您可以使用正则表达式查找和替换,并使用 \t 查找或插入制表符。 - mer10z_tech
1
有没有一种简单的方法可以将当前代码从2缩进模式更改为4缩进模式? - Charlie Parker
1
我使用自动检测缩进插件,它不仅会自动配置制表键以执行文件中已有的操作,还会在左下角显示缩进模式。 - while1fork
@CharlieParker 你可以进入偏好设置,点击编辑器选项卡,将缩进设置为4。 - Craig
注意:Atom默认显示和遍历空格,就像制表符一样!请参见tparker在此处的答案:https://dev59.com/_GEh5IYBdhLWcg3wRRmh#46333677 - Andrew
17个回答

235

请查看 设置 > 编辑器设置 中的 软制表符选项卡长度

为了快速切换缩进模式,您可以使用 Ctrl-Shift-P 并搜索 编辑器:切换软制表符


1
就像@zamber所说,如果自动缩进页面没有使用您的缩进设置,请重新打开并重试。 - Victor S
62
顺便提一下,软制表符是空格字符而不是制表符,硬制表符是制表符。如果设置没有被遵循,请尝试使用 Ctrl-Shift-P Editor: Toggle Soft Tabs - ivan-k
3
我想补充一点,就是在我切换到等宽字体之前,这个帖子中的所有解决方案都没有对我起作用。切换到等宽字体后,我尝试了每种方法,它们都确实有效。希望这能帮助未来的某个人... - Native Coder
1
有没有简单的方法将当前代码从2缩进模式更改为4? - Charlie Parker
1
这些设置对我现有的文件从未起作用。而使用.editorconfig则很好用。 - killthrush
显示剩余2条评论

73

前往文件 -> 设置

这里有3个不同的选项。

  1. 软制表符
  2. 制表符长度
  3. 制表符类型

我进行了一些测试,并得出了以下结论:

软制表符 - 启用此选项意味着它将默认使用空格(即对于新文件)。

制表符长度 - 制表符字符显示的宽度,或者如果启用软制表符,则插入制表符的空格数。

制表符类型 - 这确定要用于现有文件的缩进模式。 如果将其设置为自动,则会使用现有缩进(制表符或空格)。 如果将其设置为软制表符或硬制表符,则会强制使用空格或制表符,而不考虑现有的缩进。 最好将其保留在自动设置上。

注意: Soft = 空格,hard = 制表符


1
你也可以谈论“原子软制表符”吗? - neeh
4
有没有一种简单的方法将当前代码的缩进模式从2改为4? - Charlie Parker
1
感谢您帮助澄清Atom使用的术语,以便更好地理解这个问题。 - MiFiHiBye

28
将以下内容添加到您的~/.atom/config.cson文件中。
editor:
    tabLength: 4

20

OS X:

  1. 前往 Atom -> 首选项 或按下 CMD + ,

  2. 向下滚动并选择您喜欢的 "制表符长度"

enter image description here


16

您可以尝试进入“Atom > 首选项 > 编辑器”,将 Tab 长度设为 4。

在这里输入图片描述

这是针对 Mac 操作系统的。如果您使用的是 Windows ,则需要寻找相应的菜单。


7

以下是对我有用的@Manbroski答案:

尝试使用Ctrl-Shift-PEditor: Toggle Soft Tabs


7
很晚才来参加派对,但在每个项目的基础上一个干净的方法是,在项目根目录下添加一个 .editorconfig 文件。这样当你同时处理多个项目时,就无需更改Atom的设置。以下是我目前正在使用的非常基本的设置示例,适用于Atom,ST等编辑器......

http://editorconfig.org/

# Automatically add new line to end of all files on save.
[*]
insert_final_newline = true

# 2 space indentation for SASS/CSS
[*.{scss,sass,css}]
indent_style = space
indent_size = 2

# Set all JS to tab => space*2
[js/**.js]
indent_style = space
indent_size = 2

我差点就把 Atom 完全放弃了,直到我看到了这个。config.cson 设置似乎对现有文件完全没有任何作用。谢谢! - killthrush

3
这是核心功能:请查看设置⇒选项卡类型,并选择自动

当设置为“auto”时,编辑器会根据缓冲区内容自动检测选项卡类型(它使用非注释行上的第一个前导空格),或者如果自动检测失败,则使用软选项卡配置设置的值。

你可能还想看一下Auto Detect Indentation包。从文档中可以了解到:

自动检测已打开文件的缩进。它查看每个已打开的文件,并根据文件内容设置特定的选项卡设置(硬/软选项卡、选项卡长度),而不总是使用编辑器默认值。

你可能已将Atom配置为使用4个空格作为制表符,但打开一个默认为2个空格的Rails项目。如果没有这个包,你将不得不全局更改你的tabstop设置,否则你的文件中的前导空格将不一致。


如果使用“auto”并且它出现错误(在我的情况下,它决定在这个特定的文件中使用空格而不是制表符),那么你如何(通过快捷菜单或按键,而不是深入设置)更改它的想法?我认为自动检测没有失败,只是它弄错了。它不会为我输入硬制表符。我已经到处进行了搜索和替换,但仍然无法通过Tab键插入4个空格。 - Ed Randall
我不会使用“搜索和替换”,我会使用命令面板中的“将空格转换为制表符”(或类似的内容)。我想这在过去对我有用过。 - jcuenod

3

选项卡控件以类似于您问题描述的方式提供良好的控制。

对于JavaScript开发人员来说,ESLint Tab Length也很不错,可用于使用ESLint配置。

或者,如果您正在使用.editorconfig定义项目特定的缩进规则,则可以使用EditorConfig


3
我也遇到了同样的问题,上面提供的建议都没起作用。最后我尝试取消编辑器设置菜单中的“原子软制表符”选项,这样就解决了。

哦!原来是这样!我一直在想为什么我的箭头键在文件中没有\t时会跳过空格... - Andrew

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接