如何在Atom编辑器中自动缩进代码?


Answers:


664

我在菜单中的“编辑”>“线”>“自动缩进”下找到了该选项。它似乎没有默认的键盘映射绑定。

您可以尝试添加一个键映射(Atom>在Windows上打开您的键映射[在Windows:文件>设置>键绑定>“您的键映射文件”]),如下所示:

'atom-text-editor':
  'cmd-alt-l': 'editor:auto-indent'

它对我有用:)


对于Windows:

'atom-text-editor':
  'ctrl-alt-l': 'editor:auto-indent'

1
谢谢!如果它执行了core:全选,那会很好,但是不知道如何编写脚本。
doobdargent

3
@doobdargent我创建了一个问题,关于如何撰写两个命令到一个新的命令,这里的答案:stackoverflow.com/questions/24456995/...

15
您也可以cmd + shift + p和搜索Editor: Auto Indent
codingninja

1
我想出了一种方法,该方法首先将这种方法与“全选”绑定在一起(然后在还原后恢复原始选择),因此您可以一键完成所有操作-请参阅下面的答案。stackoverflow.com/a/33927654/398630
BrainSlugs83

4
对于ubuntu,其[编辑>打开键盘映射]。作为ctrl-alt-lubuntu锁定屏幕的默认快捷方式,我现在正在使用它ctrl-shift-]进行映射。
vusan '16

91

可接受的答案有效,但是每次都必须先执行“全选”,而我对此太懒了。

事实证明,这并非微不足道-我想将其发布在这里,是为了将志趣相投的人节省30分钟来追踪所有这些信息。-还请注意:此方法会在完成后恢复原始选择(而且发生得如此之快,您甚至都不会注意到选择已更改)。

1.)首先,向您的初始化脚本添加一个自定义命令(“文件”->“打开您的初始化脚本”,然后将其粘贴到底部):

atom.commands.add 'atom-text-editor', 'custom:reformat', ->
    editor = atom.workspace.getActiveTextEditor();
    oldRanges = editor.getSelectedBufferRanges();
    editor.selectAll();
    atom.commands.dispatch(atom.views.getView(editor), 'editor:auto-indent')
    editor.setSelectedBufferRanges(oldRanges);

2.)将“ custom:reformat”绑定到一个键(“文件”->“打开您的键映射”,然后将其粘贴到底部):

'atom-text-editor':
    'ctrl-alt-d': 'custom:reformat'

3.)重新启动Atom(仅在首次启动atom时运行init.coffee脚本)。


有趣。我不确定我是否希望它自动自动缩进所有内容。内置允许缩进选择。您可能会争辩说,适当的缩进始终是应有的东西。
Zelphir Kaltstahl 2015年

2
@Zelphir我通常有一个用于缩进选择的键绑定,以及另一个用于全部缩进的键绑定。-我不会经常使用缩进,但是在需要时最好使用缩进。
BrainSlugs83

@ BrainSlugs83也许有点题外话:我注意到尝试自动缩进语言时存在问题,这些语言不使用花括号标记代码块并允许在其他代码中定义函数或类。在这些情况下,编辑器无法知道处于哪个级别。
Zelphir Kaltstahl 2015年

2
if oldRanges != null && oldRanges[0].start.column == oldRanges[0].end.column && oldRanges[0].start.row == oldRanges[0].end.row将此条件添加到editor.selectAll();仍将仅使选择缩进。如果没有选择,它将缩进整个文件。
manish_s

1
如果要对整个命令执行单个撤消步骤,请在定义编辑器后添加以下内容:checkpoint = editor.createCheckpoint();并在末尾添加:editor.groupChangesSinceCheckpoint(checkpoint);
Dan Dan

43

包自动缩进可以使用以下快捷方式将自动缩进应用于整个文件

ctrl+ shift+i

要么

cmd+ shift+i

套件网址:https : //atom.io/packages/auto-indent


我需要更新-不适用于我。使用已弃用的API调用
Dean_Wilson 2015年

1
取而代之的是,我从github.com/griiin/atom-auto-indent手动下载并安装,现在似乎可以工作了……
Dean_Wilson 2015年

注意:默认情况下,它使用1个制表符缩进:/
King's jester的小丑2017年


17

您可以快速打开命令面板并在其中
Cmd + Shift + p进行搜索Editor: Auto Indent

屏幕截图


10
如果您是高级用户,那不是很快:)
Jad Joubran '16

5

这对我有用:

'atom-workspace atom-text-editor':
    'ctrl-alt-a': 'editor:auto-indent'

您必须先使用ctrl-a选择全部。



2

如果你有热键的烦恼,尝试打开Key Binding Resolver WindowCmd + .。它将实时显示您正在按的键。

例如,Cmd + Shift + '实际上Cmd + "


2

在Linux上

(在Ununtu KDE中测试)

菜单中有一个选项,在“ 编辑”>“线”>“自动缩进”下,或按Cmd + Shift + pEditor: Auto Indent仅输入“ ai”进行搜索

注意:在KDE ctrl-alt-l中,已经为“锁定屏幕”设置了全局设置,因此请更好地使用ctrl-alt-i

您可以在Atom中添加一个键映射:

  • Cmd + Shift + p,搜索“设置视图:显示快捷键”
  • 点击“您的键盘映射文件”
  • 像这样添加一个部分:

     'atom-text-editor':
        'ctrl-alt-i': 'editor:auto-indent'
    

如果缩进不起作用,则可能是Atom无法识别文件结尾的原因。然后添加对您的语言的支持,例如,为“ Lua”安装软件包“ language-lua”。

如果您的语言无法识别文件:

  • 打开~/.atom/config.cson文件(通过CTRL + SHIFT + p:键入``open config'')
  • 在下面的示例中添加/编辑一个customFileTypes部分core,如下所示:

    core:
      customFileTypes:
        "source.lua": [
          "conf"
        ]
        "text.html.php": [
          "thtml"
        ]
    

(您可以在语言包设置中找到语言范围名称(“ source.lua”,“ text.html.php” ...),请参见此处


0

您也可以尝试添加一个键映射,从而自动选择文件中的所有代码并将其缩进:

'atom-text-editor':
  'ctrl-alt-l': 'auto-indent:apply'

@IB尝试使用“ atom-text-editor”:“ ctrl-alt-l”:“ editor:auto-indent”在按下快捷方式之前,选择文件中的所有文本。
Hristian Yordanov

0

我正在处理一些常规代码,这些代码在保存时不会自动格式化。我所做的是右键单击代码窗格,然后选择ESLint Fix。那固定了我的缩进。

在此处输入图片说明

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.