【问题标题】:How to auto-indent code in the Atom editor?如何在 Atom 编辑器中自动缩进代码?
【发布时间】:2014-05-01 22:13:51
【问题描述】:

如何在 Atom 编辑器中自动缩进代码?在其他编辑器中,您通常可以选择一些代码并自动缩进。

还有键盘快捷键吗?

【问题讨论】:

    标签: code-formatting atom-editor auto-indent


    【解决方案1】:

    如果你习惯了 Eclipse IDE 或者 Netbeans,你可以使用包 eclipse-keybindings (https://atom.io/packages/eclipse-keybindings):

    此 Atom 包为 Atom 提供 Eclipse IDE 键映射。目前,Eclipse 快捷方式直接映射到现有的 Atom 命令。

    要格式化文件中的所有行,只需使用:Ctrl+Shift+F

    【讨论】:

      【解决方案2】:

      这是我找到的最好的帮助:

      https://atom.io/packages/atom-beautify

      这个包可以安装在Atom中,然后CTRL+ALT+B解决问题。

      【讨论】:

      • 是的,这很棒!
      【解决方案3】:

      存在包自动缩进以将自动缩进应用到 entire filethis shortcuts

      ctrl+shift+i

      cmd+shift+i

      包地址:https://atom.io/packages/auto-indent

      【讨论】:

      • 我认为需要更新 - 不适合我。使用已弃用的 API 调用
      • 相反,我从 github.com/griiin/atom-auto-indent 手动下载并安装,现在似乎可以工作了...
      • 注意:默认使用 1 个制表符缩进:/
      【解决方案4】:

      在 Linux 上

      (在 Ununtu KDE 中测试)

      菜单中有一个选项,在 Edit > Lines > Auto Indent 下或按 Cmd + Shift + p,只需输入“ai”即可搜索Editor: Auto Indent "

      注意:在 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'')
      • core 下添加/编辑customFileTypes 部分,例如:

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

      (您可以在语言包设置see here中找到语言范围名称(“source.lua”、“text.html.php”...)

      【讨论】:

        【解决方案5】:

        我正在编写一些 groovy 代码,这些代码在保存时不会自动格式化。我所做的是右键单击代码窗格,然后选择 ESLint Fix。这修正了我的缩进。

        【讨论】:

          【解决方案6】:

          我更喜欢使用 atom-beautify,CTRL+ALT+B(在 linux 中,也可能在 windows 中)处理得更好格式,也可以根据文件格式进行自定义。

          更多详情:https://atom.io/packages/atom-beautify

          【讨论】:

          • 使用 twig 它为path 函数添加了一个空格,因此找不到路由
          • 我认为这是最简单和更清洁的解决方案。谢谢。
          【解决方案7】:

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

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

          【讨论】:

          • @IB 尝试使用 'atom-text-editor': 'ctrl-alt-l': 'editor:auto-indent' 在按下快捷键之前选择文件中的所有文本。
          【解决方案8】:

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

          【讨论】:

          • 如果你是高级用户,那就不快了 :)
          【解决方案9】:

          这对我有用:

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

          你必须先用 ctrl-a 全选。

          【讨论】:

            【解决方案10】:

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

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

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

            它对我有用:)


            对于 Windows:

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

            【讨论】:

            • 谢谢!如果它之前做了一个 core:select-all 就好了,但不知道如何编写脚本。
            • @doobdargent 我在这里创建了一个关于如何将两个命令组合成一个新命令的问题:stackoverflow.com/questions/24456995/…
            • 你也可以cmd + shift + p搜索Editor: Auto Indent
            • 我想出了一种方法,首先将此方法与“全选”绑定(然后恢复原始选择),因此您可以一键完成所有操作 - 请参阅下面的答案。 stackoverflow.com/a/33927654/398630
            • 对于 ubuntu,它的 [Edit > Open Your Keymap]。由于ctrl-alt-l 是 ubuntu 的默认锁屏快捷方式,我现在用ctrl-shift-] 映射。
            【解决方案11】:

            接受的答案有效,但您必须先执行“全选” - 每次 - 我太懒了。

            事实证明,这并不是一件微不足道的事情——我想我会在这里发布这篇文章,以便为志同道合的人节省 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(init.coffee 脚本仅在 atom 首次启动时运行)。

            【讨论】:

            • 有趣。我不确定我是否希望它自动自动缩进所有内容。内置允许缩进选择。您可能会争辩说,适当的缩进总是应该有的。
            • @Zelphir 我通常有一个用于缩进选择的键绑定,以及另一个用于所有缩进的键绑定。 -- 我不经常使用缩进,但是当你需要它的时候有它很好。
            • @BrainSlugs83 也许有点离题:我注意到在尝试自动缩进语言时存在问题,这些语言不使用大括号标记代码块并允许定义函数或类他人之内。在这些情况下,编辑无法知道处于哪个级别。
            • if oldRanges != null && oldRanges[0].start.column == oldRanges[0].end.column && oldRanges[0].start.row == oldRanges[0].end.row 将此条件添加到editor.selectAll(); 仍将允许仅缩进所选内容。如果没有选择,它将缩进整个文件。
            • 如果您想为整个命令设置一个撤消步骤,请在定义编辑器后添加:checkpoint = editor.createCheckpoint();,最后添加:editor.groupChangesSinceCheckpoint(checkpoint);
            【解决方案12】:

            如果您遇到热键问题,请尝试使用 Cmd + . 打开Key Binding Resolver Window。它会实时显示你正在按下的键。

            例如 Cmd + Shift + ' 其实就是 Cmd + "

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 2016-01-09
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2015-07-06
              • 2019-08-05
              • 2010-09-29
              相关资源
              最近更新 更多