当前位置 : 首页 » 互动问答 » 正文

How to auto-indent code in the Atom editor?

分类 : 互动问答 | 发布时间 : 2014-03-24 21:52:32 | 评论 : 11 | 浏览 : 290988 | 喜欢 : 334

How do you auto-indent your code in the Atom editor? In other editors you can usually select some code and auto-indent it.

Is there a keyboard shortcut as well?

回答(11)

  • 1楼
  • I found the option in the menu, under Edit > Lines > Auto Indent. It doesn't seem to have a default keymap bound.

    You could try to add a key mapping (Atom > Open Your Keymap [on Windows: File > Settings > Keybindings > "your keymap file"]) like this one:

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

    It worked for me :)


    For Windows:

    'atom-text-editor':
      'ctrl-alt-l': 'editor:auto-indent'
    
  • 2楼
  • The accepted answer works, but you have to do a "Select All" first -- every time -- and I'm way too lazy for that.

    And it turns out, it's not super trivial -- I figured I'd post this here in an attempt to save like-minded individuals the 30 minutes it takes to track all this down. -- Also note: this approach restores the original selection when it's done (and it happens so fast, you don't even notice the selection was ever changed).

    1.) First, add a custom command to your init script (File->Open Your Init Script, then paste this at the bottom):

    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.) Bind "custom:reformat" to a key (File->Open Your Keymap, then paste this at the bottom):

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

    3.) Restart Atom (the init.coffee script only runs when atom is first launched).

  • 4楼
  • I prefer using atom-beautify, CTRL+ALT+B (in linux, may be in windows also) handles better al kind of formats and it is also customizable per file format.

    more details here: https://atom.io/packages/atom-beautify

  • 5楼
  • You can just quickly open up the command palette and do it there
    Cmd + Shift + p and search for Editor: Auto Indent:

    screenshot

  • 6楼
  • This works for me:

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

    You have to select all with ctrl-a first.

  • 7楼
  • If you have troubles with hotkeys, try to open Key Binding Resolver Window with Cmd + .. It will show you keys you're pressing in the realtime.

    For example, Cmd + Shift + ' is actually Cmd + "

  • 9楼
  • You could also try to add a key mapping witch auto select all the code in file and indent it:

    'atom-text-editor':
      'ctrl-alt-l': 'auto-indent:apply'
    
  • 10楼
  • I was working on some groovy code, which doesn't auto-format on save. What I did was right-click on the code pane, then chose ESLint Fix. That fixed my indents.

    enter image description here

  • 11楼
  • On Linux

    (tested in Ununtu KDE)

    There is the option in the menu, under Edit > Lines > Auto Indent or press Cmd + Shift + p, search for Editor: Auto Indent by entering just "ai"

    Note: In KDE ctrl-alt-l is already globally set for "lock screen" so better use ctrl-alt-i instead.

    You can add a key mapping in Atom:

    • Cmd + Shift + p, search for "Settings View: Show Keybindings"
    • click on "your keymap file"
    • Add a section there like this one:

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

    If the indention is not working, it can be a reason, that the file-ending is not recognized by Atom. Add the support for your language then, for example for "Lua" install the package "language-lua".

    If a File is not recognized for your language:

    • open the ~/.atom/config.cson file (by CTRL+SHIFT+p: type ``open config'')
    • add/edit a customFileTypes section under core for example like the following:

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

    (You find the languages scope names ("source.lua", "text.html.php"...) in the language package settings see here)

相关阅读:

How to format XML in Notepad++?

How To Auto-Format / Indent XML/HTML in Notepad++

What is the "-->" operator in C++?

How do you format code in Visual Studio Code (VSCode)

Tab key == 4 spaces and auto-indent after curly braces in Vim

Notepad ++中的自动缩进

Formatting code in Notepad++

How to auto-format code in Eclipse?

Tool to Unminify / Decompress JavaScript

Turning off auto indent when pasting text into vim