Atomエディターでコードを自動インデントする方法は?


393

Atomエディターでコードをどのように自動インデントしますか?他のエディターでは通常、コードを選択して自動インデントできます。

キーボードショートカットもありますか?

回答:


664

メニューの[編集]> [行]> [自動インデント]にオプションが見つかりました。デフォルトのキーマップがバインドされていないようです。

次のようなキーマッピングを追加してみてください(Atom> Open Your Keymap [Windows:File> Settings> Keybindings> "your keymap file"])。

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

それは私のために働いた:)


Windowsの場合:

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

1
ありがとうございました!それが直前にcore:select-allを実行した場合は良いでしょうが、それをスクリプト化する方法についての手掛かりはありません。
doobdargent

3
:@doobdargent私はここに新しいコマンドに2つのコマンドを構成する方法についての答えを質問を作成しstackoverflow.com/questions/24456995/...
リー

15
あなたはすることもできますcmd + shift + pし、の検索Editor: Auto Indent
codingninja

1
私は最初にこの方法を「すべて選択」にバインドする方法を考え出しました(その後、元の選択を復元します)。1回のキーを押すだけですべてを実行できます。以下の私の回答を参照してください。stackoverflow.com/a/33927654/398630
BrainSlugs83

4
ubuntuの場合、[編集>キーマップを開く]。ASとctrl-alt-lロック画面用のUbuntuのデフォルトのショートカットで、私はとのマッピングだctrl-shift-]今のところ。
ブーサン、

91

受け入れられた回答は機能しますが、最初に「すべてを選択」する必要があります-毎回-私はそのためにとても面倒です。

結局のところ、それは非常に簡単なことではありません。私は、これをすべて追跡するのにかかる30分かかる志を同じくする個人を救うために、ここに投稿すると思いました。-また注意:このアプローチでは、完了時に元の選択が復元されます(これは非常に速く行われるため、選択が変更されたことに気付くことさえありません)。

1.)最初に、カスタムコマンドをinitスクリプトに追加します([ファイル]-> [Initスクリプトを開く]をクリックし、次にこれを下部に貼り付けます)。

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 Kaltstahl、2015

2
@Zelphir私は通常、インデント選択用の1つのキーバインドと、すべてインデント用の別のキーバインドを持っています。-私は頻繁にインデントを使用していませんが、必要なときにインデントがあると便利です。
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);
ダン

43

次のショートカットを使用ファイル全体に自動インデントを適用するために、パッケージ自動インデントが存在します。

ctrl+ shift+i

または

cmd+ shift+i

パッケージのURL:https : //atom.io/packages/auto-indent


更新が必要だと思います-うまくいきません。APIの非推奨の呼び出しの使用
Dean_Wilson '27

1
代わりに、私はgithub.com/griiin/atom-auto-indentから手動でダウンロードしてインストールしましたが、現在は機能しているようです...
Dean_Wilson

注:デフォルトでは1つのタブインデントが使用されます:/
キングの道化師

24

私は、原子美しくを使用して好みますCTRL+ ALT+Bハンドルがフォーマットのアル種類より良い(Linuxでは、また、Windowsであってもよい)、それはまた、ファイル形式ごとにカスタマイズ可能です。

詳細はこちら:https : //atom.io/packages/atom-beautify


小枝それはのためのスペースを追加するpathルートが見つかりませんでしたので、機能
ロドルフォ・ベラスコ

これが最もシンプルでクリーンなソリューションだと思います。ありがとう。
アレッサンドロ

17

コマンドパレットをすばやく開いてそこで実行し、次のように
Cmd + Shift + p検索しEditor: Auto Indentます。

スクリーンショット


10
あなたがパワーユーザーならそれは速くありません:)
Jad Joubran

5

これは私にとってはうまくいきます:

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

最初にctrl-aですべてを選択する必要があります。



2

ホットキーに問題がある場合は、で開いKey Binding Resolver WindowてみてくださいCmd + .。リアルタイムで押しているキーが表示されます。

たとえば、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を選択しました。これでインデントが修正されました。

ここに画像の説明を入力してください

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.