Wie wird Code im Atom-Editor automatisch eingerückt?


393

Wie wird Ihr Code im Atom-Editor automatisch eingerückt? In anderen Editoren können Sie normalerweise einen Code auswählen und automatisch einrücken.

Gibt es auch eine Tastenkombination?

Antworten:


664

Ich habe die Option im Menü unter Bearbeiten> Linien> Automatischer Einzug gefunden. Es scheint keine Standard-Keymap gebunden zu haben.

Sie könnten versuchen, eine Tastenzuordnung (Atom> Öffnen Sie Ihre Keymap [unter Windows: Datei> Einstellungen> Tastenkombinationen> "Ihre Keymap-Datei"]) wie diese hinzuzufügen:

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

Es hat bei mir funktioniert :)


Für Windows:

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

1
Vielen Dank! Wäre schön, wenn es einen Kern gäbe: Alles vorher auswählen, aber keine Ahnung, wie man das schreibt.
Doobdargent

3
@doobdargent Ich habe hier eine Frage mit einer Antwort zum Zusammensetzen von zwei Befehlen zu einem neuen Befehl erstellt: stackoverflow.com/questions/24456995/…
Lee

15
Sie können auch cmd + shift + pund suchen nachEditor: Auto Indent
Codingninja

1
Ich habe einen Weg gefunden, diesen Ansatz zuerst mit "Alle auswählen" zu verknüpfen (und danach die ursprüngliche Auswahl wiederherzustellen), damit Sie alles mit einem Tastendruck erledigen können - siehe meine Antwort unten. stackoverflow.com/a/33927654/398630
BrainSlugs83

4
Für Ubuntu ist es [Bearbeiten> Öffnen Sie Ihre Keymap]. Und wie ctrl-alt-lUbuntus Standardverknüpfung für den Sperrbildschirm ist, ordne ich vorerst zu ctrl-shift-].
Vusan

91

Die akzeptierte Antwort funktioniert, aber Sie müssen jedes Mal zuerst "Alle auswählen" ausführen, und dafür bin ich viel zu faul.

Und es stellt sich heraus, dass es nicht sehr trivial ist - ich dachte, ich würde dies hier posten, um Gleichgesinnten die 30 Minuten zu ersparen, die nötig sind, um all dies aufzuspüren. - Beachten Sie auch: Dieser Ansatz stellt die ursprüngliche Auswahl wieder her, wenn er abgeschlossen ist (und dies geschieht so schnell, dass Sie nicht einmal bemerken, dass die Auswahl jemals geändert wurde).

1.) Fügen Sie Ihrem Init-Skript zunächst einen benutzerdefinierten Befehl hinzu (Datei-> Öffnen Sie Ihr Init-Skript und fügen Sie diesen unten ein):

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.) Binden Sie "custom: neu formatieren" an einen Schlüssel (Datei-> Öffnen Sie Ihre Keymap und fügen Sie diese unten ein):

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

3.) Starten Sie Atom neu (das Skript init.coffee wird nur ausgeführt, wenn atom zum ersten Mal gestartet wird).


Interessant. Ich bin mir nicht sicher, ob es automatisch alles automatisch einrücken soll. Das eingebaute ermöglicht das Einrücken der Auswahl. Man könnte argumentieren, dass die richtige Einrückung immer etwas ist, das man haben sollte.
Zelphir Kaltstahl

2
@Zelphir Normalerweise habe ich eine Tastenkombination für die Auswahl der Einrückungen und eine andere Tastenkombination für alle Einrückungen. - Ich verwende Einrückungen nicht so oft, aber es ist schön, sie zu haben, wenn Sie sie brauchen.
BrainSlugs83

@ BrainSlugs83 Vielleicht ein bisschen offtopic: Ich habe festgestellt, dass es ein Problem gibt, wenn versucht wird, Sprachen automatisch einzurücken, die keine geschweiften Klammern verwenden, um Codeblöcke zu markieren und Funktionen oder Klassen in anderen zu definieren. Der Editor kann in diesen Fällen nicht wissen, was sich auf welcher Ebene befindet.
Zelphir Kaltstahl

2
if oldRanges != null && oldRanges[0].start.column == oldRanges[0].end.column && oldRanges[0].start.row == oldRanges[0].end.rowDurch Hinzufügen dieser Bedingung zu editor.selectAll();wird weiterhin nur die Auswahl eingerückt. Wenn keine Auswahl vorhanden ist, wird die gesamte Datei eingerückt.
manish_s

1
Wenn Sie einen einzelnen Rückgängig-Schritt für den gesamten Befehl haben möchten, fügen Sie diesen hinzu, nachdem Sie den Editor definiert haben: checkpoint = editor.createCheckpoint();und dies am Ende:editor.groupChangesSinceCheckpoint(checkpoint);
Dan

43

Das automatische Einrücken des Pakets ist vorhanden, um das automatische Einrücken auf die gesamte Datei mit den folgenden Verknüpfungen anzuwenden :

ctrl+ shift+i

oder

cmd+ shift+i

Paket-URL: https://atom.io/packages/auto-indent


braucht ein Update, denke ich - funktioniert nicht für mich. Verwenden veralteter Aufrufe der API
Dean_Wilson

1
Stattdessen habe ich manuell von github.com/griiin/atom-auto-indent heruntergeladen und installiert und scheint jetzt zu funktionieren ...
Dean_Wilson

Hinweis: Es wird standardmäßig 1 Tab-Einzug verwendet: /
King's Jester

24

Ich bevorzuge Atom-Verschönerung, CTRL+ ALT+B (in Linux, auch in Fenstern sein kann) Griffe besser al Art von Formaten und es ist auch anpassbar pro Dateiformat.

Weitere Details hier: https://atom.io/packages/atom-beautify


Mit Zweig fügt es einen Raum für pathFunktion hinzu, so dass die Route nicht gefunden werden konnte
Rodolfo Velasco

Ich denke, das ist die einfachste und sauberere Lösung. Vielen Dank.
Alessandro

17

Sie können einfach schnell die Befehlspalette öffnen und dort ausführen
Cmd + Shift + pund suchen nach Editor: Auto Indent:

Bildschirmfoto


10
Das ist nicht schnell, wenn Sie ein Power-User sind :)
Jad Joubran

5

Das funktioniert bei mir:

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

Sie müssen alle zuerst mit Strg-A auswählen .



2

Wenn Sie Probleme mit Hotkeys haben, versuchen Sie, Key Binding Resolver Windowmit zu öffnen Cmd + .. Es zeigt Ihnen die Tasten, die Sie in Echtzeit drücken.

Zum Beispiel Cmd + Shift + 'ist eigentlichCmd + "


2

Unter Linux

(getestet in Ununtu KDE)

Es gibt die Option im Menü unter Bearbeiten> Linien> Automatischer Einzug oder drücken Sie Cmd + Shift + p, um zu suchen, Editor: Auto Indentindem Sie nur "ai" eingeben.

Hinweis: In KDE ctrl-alt-list bereits global auf "Sperrbildschirm" eingestellt, daher besser verwenden ctrl-alt-i.

Sie können eine Schlüsselzuordnung in Atom hinzufügen:

  • Cmd + Shift + p, suchen Sie nach "Einstellungen anzeigen: Tastenkombinationen anzeigen"
  • Klicken Sie auf "Ihre Keymap-Datei".
  • Fügen Sie dort einen Abschnitt wie diesen hinzu:

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

Wenn die Einrückung nicht funktioniert, kann dies ein Grund dafür sein, dass das Dateiende von Atom nicht erkannt wird. Fügen Sie dann die Unterstützung für Ihre Sprache hinzu, installieren Sie beispielsweise für "Lua" das Paket "language-lua".

Wenn eine Datei für Ihre Sprache nicht erkannt wird:

  • Öffnen Sie die ~/.atom/config.csonDatei (mit STRG + UMSCHALT + p: Geben Sie `` open config '' ein.)
  • Hinzufügen / Bearbeiten eines customFileTypesAbschnitts unter corebeispielsweise wie folgt:

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

(Die Namen des Sprachbereichs ("source.lua", "text.html.php" ...) finden Sie in den Sprachpaketeinstellungen, siehe hier )


0

Sie können auch versuchen, eine Schlüsselzuordnung hinzuzufügen, bei der der gesamte Code in der Datei automatisch ausgewählt und eingerückt wird:

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

@IB Versuchen Sie es mit 'atom-text-editor': 'ctrl-alt-l': 'editor: auto-indent' Bevor Sie die Verknüpfung drücken, wählen Sie den gesamten Text in der Datei aus.
Hristian Yordanov

0

Ich habe an einem groovigen Code gearbeitet, der beim Speichern nicht automatisch formatiert wird. Ich habe mit der rechten Maustaste auf den Codebereich geklickt und dann ESLint Fix ausgewählt. Das hat meine Einrückungen behoben.

Geben Sie hier die Bildbeschreibung ein

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.