我还无法弄清楚这一点。Atom 似乎使用空格作为默认缩进模式。不过,我更喜欢有标签。Sublime Text 内置了切换和转换缩进的功能。
有人知道如何更改 Atom 的缩进模式吗?
Sublime Text 的一些截图:
我还无法弄清楚这一点。Atom 似乎使用空格作为默认缩进模式。不过,我更喜欢有标签。Sublime Text 内置了切换和转换缩进的功能。
有人知道如何更改 Atom 的缩进模式吗?
Sublime Text 的一些截图:
请参阅设置 > 编辑器设置下的软制表符和制表符长度。
要快速切换缩进模式,您可以使用Ctrl-Shift-P并搜索Editor: Toggle Soft Tabs。
转到文件-> 设置
这里有 3 个不同的选项。
我做了一些测试,并得出了关于每个人的作用的这些结论。
Soft Tabs - 启用这意味着它将默认使用空格(即用于新文件)。
制表符长度- 制表符显示的宽度,或者如果启用了软制表符,则为制表符插入多少空格。
Tab Type - 这决定了用于现有文件的缩进模式。如果将其设置为自动,它将使用现有的缩进(制表符或空格)。如果将其设置为软或硬,它将强制使用空格或制表符,而不管现有缩进如何。最好把它留在自动上。
注意:软 = 空格,硬 = 制表符
将此添加到您的~/.atom/config.cson
editor:
tabLength: 4
在此处添加对我有用的@Manbroski答案:
尝试Ctrl-Shift-P
Editor: Toggle Soft Tabs
派对迟到了,但在每个项目的基础上执行此操作的一种简洁方法是将.editorconfig文件添加到项目的根目录。当您同时处理多个项目时,您不必更改 Atom 的设置。
这是我目前正在使用的一个非常基本的设置示例。适用于 Atom、ST 等...
# 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
这是内置在核心中的:查看Settings ⇒ Tab Type
并选择auto
:
当设置为“auto”时,编辑器会根据缓冲区的内容自动检测选项卡类型(它使用非注释行上的第一个前导空格),或者使用 Soft Tabs 配置设置的值(如果自动)检测失败。
您可能还想查看Auto Detect Indentation包。从文档:
自动检测打开文件的缩进。它查看每个打开的文件并根据文件的内容设置文件特定的选项卡设置(硬/软选项卡、选项卡长度),而不是始终使用编辑器默认值。
您可能将 atom 配置为使用 4 个空格作为制表符,但打开一个默认为 2 个空格的 rails 项目。如果没有此软件包,您将不得不全局更改制表位设置,否则可能会导致文件中的前导间距不一致。
我只是遇到了同样的问题,上面的建议都没有奏效。最后我尝试在编辑器设置菜单中取消选中“原子软选项卡”,这很有效。
如果您使用的是 1.21.1 版本:
现在,只需关闭活动选项卡窗格即可完成。
选项卡控件以与您的问题中描述的方式类似的方式提供了很好的控制。
对于 JavaScript 开发人员来说,使用 ESLint 配置的ESLint Tab Length也很好。
或者,如果您使用.editorconfig
定义项目特定的缩进规则,有EditorConfig
如果您使用 Babel,您可能还需要确保更新您的“Language Babel”包。对我来说,即使我在核心编辑器设置中将 Tab Length 设置为 2,但 Language Babel 配置中的 Same 设置将其覆盖为 4。
Atom -> Preferences -> Packages -> (Search for Babel) -> Grammar -> Tab Length
确保合适的语法,有“Babel ES6 Javascript 语法”、“language-babel-extension Grammar”以及“Regular Expression”。您可能希望更新所有这些以保持一致。
如果全局制表符/空格缩进设置不再适合您的需要(即,您发现自己正在使用具有不同缩进格式的遗留代码库,并且您需要在它们之间快速切换,并且自动检测不起作用)您可以尝试选项卡-control 插件,它可以复制屏幕截图中菜单的功能。
当 Atom 自动缩进检测完全错误并拒绝让我输入文字 Tab 字符时,我最终找到了“Force-Tab”扩展名——这让我重新获得了控制权。我想保留 shift-tab 以进行缩进,因此设置 ctrl-tab 以插入硬制表符。在我的键盘映射中,我添加了:
'atom-text-editor':
'ctrl-tab': 'force-tab:insert-actual-tab'
更改特定于语言的配置
我更改了默认选项卡设置,但在我编辑我的文件时它仍然没有影响,这些文件是 Python 文件。当我修改 ~/.atom/config.cson 中的“*”设置时,它也没有改变。我对其中任何一个都没有很好的解释。
但是,当我将以下内容添加到我的 config.cson 时,我能够将 Python 文件中的选项卡更改为 2 个空格:
'.source.python':
editor:
tabLength: 2
感谢此资源的解决方案:Tab key not respecting tab length
这里所有最受欢迎的答案都是很好的答案,并且会为制表符打开空格,但它们都缺少一件事。如何将空格而不是制表符应用于现有代码。
为此,只需选择您要格式化的所有代码,然后转到编辑-> 行-> 自动缩进,它将修复所有选定的内容。
或者,您可以只选择要格式化的所有代码,然后使用 Ctrl Shift P 并搜索 Auto Indent。只需在搜索结果中单击它,它就会修复所有选定的内容。