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


194

我还无法弄清楚。Atom似乎使用空格作为默认缩进模式。我更喜欢有选项卡。Sublime Text具有用于切换和转换缩进的内置功能。

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

Sublime Text的一些屏幕截图:

崇高文本缩进菜单打开 崇高的文字缩进菜单


4
为了转换缩进,您可以执行正则表达式查找和替换,并使用\ t查找或插入制表符。
mer10z_tech 2014年

1
有没有一种简单的方法可以将当前代码从2缩进模式更改为4?
查理·帕克

1
我使用了自动检测缩进插件,该插件不仅会自动配置Tab键以执行文件中已有的任何操作,而且会在左下方显示缩进模式。
while1fork

@CharlieParker您可以转到首选项,单击编辑器选项卡,然后将“缩进”设置为4。–
Craig

注意:默认情况下,Atom显示和遍历选项卡之类的空格!请在此处查看tparker的答案:stackoverflow.com/a/46333677/1599699
Andrew

Answers:


218

请参阅“设置”>“编辑器设置”下的软选项卡”和“ 选项卡长度

要快速切换缩进模式,可以使用Ctrl-Shift-P并搜索“ 编辑器:切换软标签”


1
就像@zamber所说的那样,如果页面自动缩进并且没有拾取您的缩进设置,请重新打开它,然后重试。
维克多S

58
就像一个旁注-软制表符是空格字符作为制表符,硬制表符是制表符。另外,如果未指定设置,请尝试Ctrl-Shift-P Editor: Toggle Soft Tabs
ivan-k

2
我想补充一点,直到我替换为等宽字体,此线程中的所有解决方案都无法为我工作。换成等宽字体后,我尝试了每种方法,它们确实确实起作用。希望这对以后的人有所帮助...
Native Coder'Jan

有没有一种简单的方法可以将当前代码从2缩进模式更改为4?
查理·帕克

我必须承认,在编码时不使用等宽字体不会带来任何好处。
Frank Bailey

65

转到文件->设置

这里有3种不同的选择。

  1. 软标签
  2. 标签长度
  3. 标签类型

我做了一些测试,得出了每个人所做的这些结论。

软选项卡 -启用此选项意味着默认情况下它将使用空格(例如,用于新文件)。

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

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

注意:软=空格,硬=制表符


您还可以谈论原子软标签吗?
neeh

3
有没有一种简单的方法可以将当前代码从2缩进模式更改为4?
查理·帕克

1
感谢您帮助阐明一些术语Atom用来理解此问题。
MiFiHiBye '18



11

您可以尝试转到“ Atom>首选项>编辑器”,然后将Tab长度设置为4。

在此处输入图片说明

这是为mac。对于Windows,您将必须找到适当的菜单。



6

晚了一点,但是按每个项目执行此操作的一种干净方法是将.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

这是内置的核心:请Settings ⇒ Tab Type选择auto

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

您可能还想看看自动检测缩进包。从文档:

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

您可能已将atom配置为对选项卡使用4个空格,但打开一个默认为2个空格的rails项目。如果没有此软件包,则必须全局更改Tabstop设置,否则可能会导致文件中的引线间距不一致。


如果使用“自动”并弄错了(在我的情况下,决定要在该特定文件上使用制表符时使用空格),您如何(使用快速菜单或按键,而不是深入研究设置)改变主意?我不认为自动检测失败,只是错误了。它不会为我打个硬标签。我已经在所有位置进行了搜索和替换,但是Tab键仍然插入4个空格。
Ed Randall

我不会search-and-replace使用命令面板convert spaces to tabs(或类似的东西)。我认为过去对我有用。
jcuenod

3

我只是遇到了同样的问题,以上建议均无济于事。最后,我尝试取消选中“编辑器设置”菜单中的““原子软标签””,该方法可以正常工作。


哦!那是什么意思!我想知道为什么\t文件中没有任何内容时,我的箭头键会跳过空格...
安德鲁(Andrew)

2

如果您使用的是Babel,则可能还需要确保更新“ Language Babel”软件包。对我来说,即使我在核心编辑器设置中将“制表符长度”设置为2,但“语言通配​​符”配置中的“相同”设置仍将其替换为4。

Atom -> Preferences -> Packages -> (Search for Babel) -> Grammar -> Tab Length

确保适当的语法,包括“ Babel ES6 Javascript语法”,“ language-babel-extension语法”以及“正则表达式”。您可能想要更新所有它们以保持一致。



1

如果全局制表符/空格缩进设置不再符合您的需求(即,您发现自己正在使用具有各种缩进格式的旧代码库,并且需要在它们之间快速切换,并且自动检测不起作用),则可以尝试使用制表符-control插件,与您的屏幕截图中的菜单功能完全相同。


1

当Atom自动缩进检测无可避免地出错并拒绝让我键入原义的Tab字符时,我最终找到了'Force-Tab'扩展名 -这使我获得了控制权。我想保留shift-tab来进行缩排,因此将ctrl-tab设置为插入硬标签。在我的键盘图中,我添加了:

'atom-text-editor': 'ctrl-tab': 'force-tab:insert-actual-tab'


1

如果您使用的是1.21.1版本:

  1. 单击包/设置视图/打开
  2. 在左侧面板上选择“编辑器”
  3. 放下Scrool,直到看到“制表符长度”
  4. 编辑值。我喜欢将其设置为4。

现在,只需关闭活动的选项卡窗格即可。


0

这里所有最受欢迎的答案都是很好的答案,它们会打开制表符的空格,但它们都缺少一件事。如何将空格而不是制表符应用于现有代码。

为此,只需选择要格式化的所有代码,然后转到“编辑”->“行”->“自动缩进”,它将修复所有选定的内容。

或者,您可以只选择要格式化的所有代码,然后使用Ctrl Shift P并搜索“自动缩进”。只需在搜索结果中单击它,它将修复所有选定内容。


0

更改特定于语言的配置

我更改了默认选项卡设置,并且在编辑文件(Python文件)时仍然没有影响。当我修改〜/ .atom / config.cson中的“ *”设置时,它也没有改变。我对这两个都没有很好的解释。

但是,当我将以下内容添加到config.cson时,我能够将Python文件中的选项卡更改为2个空格:

'.source.python':
  editor:
    tabLength: 2

感谢此资源提供了解决方案:Tab键不考虑Tab的长度

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.