Intellij beim Formatieren neu formatieren

353

Ich erinnere mich, dass ich in IntelliJ oder Eclipse die Einstellung zum Neuformatieren (Bereinigen) von Dateien beim Speichern gesehen habe. Wie finde ich es (habe es in den Einstellungen nicht gefunden)

ripper234
quelle

Antworten:

236

Ich schlage das Plugin zum Speichern von Aktionen vor . Es unterstützt auch die Optimierung von Importen und die Neuanordnung von Code.

Funktioniert gut in Kombination mit dem Eclipse-Formatierungs-Plugin .

Suchen und aktivieren Sie das Plugin:

Geben Sie hier die Bildbeschreibung ein

Konfigurieren Sie es:

Geben Sie hier die Bildbeschreibung ein

Bearbeiten: Es scheint, als ob in der neuesten Version von Intellij das Plugin zum Speichern von Aktionen durch das automatische Speichern von Intellij ausgelöst wird. Dies kann ziemlich ärgerlich sein, wenn es während der Bearbeitung trifft.

Dieses Github-Problem des Plugins gibt einen Hinweis auf einige mögliche Lösungen:

https://github.com/dubreuia/intellij-plugin-save-actions/issues/63

Ich habe tatsächlich versucht, Ctrl+ eine Neuformatierung zuzuweisen, Sund es hat gut funktioniert - das Speichern erfolgt jetzt automatisch.

Benjamin Peter
quelle
Ich habe dies verwendet, aber nach dem Update auf Android Studio 1.5.1 kann ich es nicht mehr finden.
r1k0
1
Das Plugin wurde (ab sofort) zuletzt am 10.02.2016 aktualisiert und sagt, Compatibility This plugin works with Java 6+ and Intellij IDEA Community Edition after 131 (around version 13).ich weiß nicht, auf welcher Version von IntelliJ Android Studio basiert. Kannst du das überprüfen?
Benjamin Peter
Nach oben gehst du!
Nick Grealy
Fast für mich gearbeitet. Leider würde der "Neuformatierungscode" nur eine Teilmenge der Aufgaben von "Code> Neuformatierungscode" ausführen (zumindest für Scala-Code). Warum ist das so?
Thilo
Versuchte dies, aber IntelliJ spart viel zu oft. Beim Organisieren von Importen werden immer 2-3 Tastenanschläge angezeigt.
Ashley
443

Diese Lösung hat bei mir besser funktioniert:

  1. Erstellen Sie ein Makro (ich habe Importe organisieren, Code formatieren, Alle speichern verwendet)
  2. Weisen Sie ihm einen Tastendruck zu (ich habe Ctrl+ überschrieben S)

Hinweis: Sie müssen das Kontrollkästchen "Diese Nachricht nicht mehr anzeigen" beim ersten Mal für die organisierten Importe aktivieren, aber es funktioniert danach wie erwartet.

Schritt für Schritt für IntelliJ 10.0:

  1. Code -> "Importe optimieren ..." Wenn ein Dialogfeld angezeigt wird, aktivieren Sie das Kontrollkästchen "Diese Meldung nicht mehr anzeigen" und klicken Sie dann auf "Ausführen".
  2. Extras -> "Makroaufnahme starten"
  3. Code -> "Importe optimieren ..."
  4. Code -> "Code neu formatieren ..."
  5. Datei -> "Alle speichern"
  6. Extras -> "Makroaufnahme stoppen"
  7. Benennen Sie das Makro (so etwas wie "formatiertes Speichern")
  8. Wählen Sie unter Datei -> Einstellungen -> Keymap Ihr ​​Makro unter "Hauptmenü -> Extras ->" Formatiertes Speichern "aus.
  9. Klicken Sie auf "Tastaturkürzel hinzufügen" und führen Sie den gewünschten Tastendruck aus. Wenn Sie Ctrl+ Swie ich wählen , werden Sie gefragt, was Sie mit der vorherigen Ctrl+ SVerknüpfung tun sollen . Entfernen Sie es. Sie können es später jederzeit neu zuweisen, wenn Sie möchten.
  10. Genießen!

Ersetzen Sie IntelliJ 11

Schritt 2. mit: Bearbeiten -> Makros -> "Makroaufzeichnung starten"
Schritt 6. mit: Bearbeiten -> Makros -> "Makroaufzeichnung stoppen"

Alles andere bleibt gleich.

IntelliJ 12

8. Die Einstellungen enthalten die Keymap-Einstellungen. Verwenden Sie das Eingabefeld, um den Inhalt zu filtern, wie im Screenshot gezeigt.

Intellij / Einstellungen / Keymap / Makros

Neil
quelle
4
In IntelliJ 11: 1: Makroaufnahme starten: Bearbeiten -> Makros -> Makroaufnahme starten. 2: Befolgen Sie die obigen Anweisungen. 3: Makroaufnahme stoppen: Bearbeiten -> Makros -> Makroaufnahme stoppen. In der Keymap wird das Makro im Ordner "Makros" anstelle des Ordners "Hauptmenü -> Extras" gespeichert.
Markus K
3
Wenn Sie mit der Neuformatierung von Code zufrieden sind, funktioniert dieser Ansatz viel besser, wenn Sie den gesamten Code im Projekt neu formatieren und speichern. Andernfalls wird beim Bearbeiten mehrerer Dateien nur die aktive neu formatiert, bevor alle geänderten Änderungen gespeichert werden.
Drew Noakes
86

Unten ist Neils Antwort aktualisiert.

IntelliJ 13 Schritte:

  1. Code -> Code neu formatieren Geben Sie hier die Bildbeschreibung ein
  2. Bearbeiten -> Makros -> Makroaufnahme starten
  3. Code -> Code neu formatieren
  4. Datei -> Alle speichern
  5. Bearbeiten -> Makros -> Makroaufnahme stoppen
  6. Benennen Sie das Makro (so etwas wie "formatiertes Speichern")
  7. Datei -> Einstellungen -> Keymap
  8. Klicken Sie mit der rechten Maustaste auf das Makro. Tastaturkürzel hinzufügen. Stellen Sie die Tastenkombination auf Strg + S ein. Geben Sie hier die Bildbeschreibung ein
  9. IntelliJ informiert Sie über einen Hotkey-Konflikt. Wählen Sie "Entfernen", um andere Zuordnungen zu entfernen.
user3858354
quelle
Dadurch wird jedoch die Aktion "Speichern" entfernt. Das Poster hat gesehen, dass wir in Eclipse die Option haben, Code zu formatieren und den Import automatisch zu organisieren, wenn eine Datei gespeichert wird. Diese Option fehlt (nehme ich an) in der IntelliJ-Idee. Hierbei handelt es sich um eine Problemumgehung, bei der der Sicherungsschlüssel an den Neuformatierungsschlüssel gebunden wird.
Ganesh Krishnan
3
Ich bin anderer Meinung, @GaneshKrishnan. Diese Problemumgehung bindet den "Sicherungsschlüssel" nicht an den "Neuformatierungsschlüssel". Es bindet es an ein Makro, das "neu formatiert und speichert". Dies ist genau das, was OP verlangt und was in Eclipse implementiert ist, aber mit einem Kontrollkästchen ausgelöst wird.
DBM
1
Ich denke, für Schritt 1 meinen Sie vielleicht "Code -> Dialog" Datei neu formatieren "", um die Standardeinstellungen für den Dialog "Datei neu formatieren" festzulegen (damit sie für Schritt 3 - Code neu formatieren korrekt eingestellt sind).
Studgeek
61

Ich habe es so eingestellt, dass es beim Check-in automatisch bereinigt wird, was normalerweise gut genug für mich ist. Wenn etwas zu hässlich ist, drücke ich einfach die Verknüpfung ( Ctrl- Alt- L, Return). Und ich sehe, dass sie eine Option zum automatischen Formatieren von eingefügtem Code haben, obwohl ich das nie verwendet habe.

William Pietri
quelle
12
Sie können zum Formatieren auch Strg-Umschalt-F verwenden. Das funktioniert für mich viel besser, da Strg-Alt-L der Befehl zum Sperren des Bildschirms unter Ubuntu ist.
Jason McVetta
22
Strg + Umschalt + F ist In Pfad suchen .
Stapel
5
Wie können Sie beim Einchecken etwas einrichten?
Rob
2
Funktioniert das, wenn Sie nicht mit IntelliJ einchecken, dh ich denke, es funktioniert nicht, wenn Sie mit dem Befehlszeilentool einchecken.
Wie beantwortet das die Frage?
Ben
19

Ctrl+ Alt+ LIst Formatdatei (umfasst die beiden unten)

Ctrl+ Alt+ OIst optimize Importe

Ctrl+ Alt+ Ikorrigiert den Einzug in einer bestimmten Zeile

Normalerweise laufe ich ein paar Mal Ctrl+ Alt+, Lbevor ich meine Arbeit erledige. Ich möchte lieber die Bereinigung / Neuformatierung auf meinen Befehl anstatt automatisch durchführen.

joeslice
quelle
Ersetzen Sie Strg durch Cmd für Mac
Gerard
12
Vorsicht unter Linux, wie Ctrl + Alt + Les bei Lock Session üblich ist. Sie müssten eine der Funktionen neu zuordnen.
unteilbar
18

Wenn Sie InteliJ Idea Community 2018.2 haben, sind die Schritte wie folgt:

  1. Im oberen Menü klicken Sie auf: Bearbeiten> Makros> Makroaufzeichnungen starten (in der unteren rechten Ecke Ihres Bildschirms wird ein Fenster angezeigt, in dem bestätigt wird, dass Makros aufgezeichnet werden).
  2. Im oberen Menü klicken Sie auf: Code> Code neu formatieren (die Option wird in der unteren rechten Ecke ausgewählt).
  3. Im oberen Menü klicken Sie auf: Code> Importe optimieren (die Option wird in der unteren rechten Ecke ausgewählt)
  4. Im oberen Menü klicken Sie auf: Datei> Alle speichern
  5. Im oberen Menü klicken Sie auf: Bearbeiten> Makros> Makroaufzeichnung stoppen
  6. Sie nennen das Makro: "Code formatieren, Importe organisieren, Speichern"
  7. Im oberen Menü sehen Sie: Datei> Einstellungen. In den Einstellungsfenstern klicken Sie auf Keymap
  8. Im Suchfeld rechts suchen Sie nach "Speichern". Sie finden Alle speichern (Strg + S). Klicken Sie mit der rechten Maustaste darauf und wählen Sie "Strg + S entfernen".
  9. Entfernen Sie Ihren Suchtext aus dem Feld und klicken Sie auf die Schaltfläche Alle reduzieren (zweite Schaltfläche von oben links).
  10. Gehen Sie zu Makros, drücken Sie auf den Pfeil, um Ihre Makros zu erweitern, suchen Sie Ihr gespeichertes Makro und klicken Sie mit der rechten Maustaste darauf. Wählen Sie Tastaturkürzel hinzufügen und drücken Sie Strg + S und OK.

Starten Sie Ihre IDE neu und versuchen Sie es.

Ich weiß, was du sagen wirst, die Jungs vor mir haben dasselbe geschrieben. Aber ich war verwirrt über die Schritte über diesem Beitrag und wollte eine dumme Version für Leute schreiben, die die neueste Version der IDE haben.

Allex Radu
quelle
13

Wenn Sie in Flutter entwickeln, gibt es ab dem 01.05.2008 eine neue experimentelle Option, mit der Sie Code beim Speichern formatieren können. die Einstellungen

ThinkDigital
quelle
9

Ich habe die Reformat code...Aktion erneut an Ctrl- Sgebunden und die Standardbindung für ersetzt Save All.

Es mag zunächst verrückt klingen, aber IntelliJ scheint praktisch jede Aktion einzusparen: Ausführen von Tests, Erstellen des Projekts, selbst wenn ein Editor-Tab geschlossen wird. Ich habe die Angewohnheit zu schlagen Ctrl- Sziemlich oft, also funktioniert das eigentlich ganz gut für mich. Es ist sicherlich einfacher zu tippen als die Standardbindung für die Neuformatierung.

cwc
quelle
5

IntellIJ 14 && 15: Wenn Sie im Dialogfeld "Änderungen übernehmen" Code einchecken, aktivieren Sie das Kontrollkästchen Code neu formatieren, und IntelliJ formatiert den gesamten Code, den Sie einchecken, neu.

Quelle: www.udemy.com/intellij-idea-secrets-double-your-coding-speed-in-2-hours

Alex Richard
quelle
2
Was habe ich hier
Tushar
4
Beachten Sie, dass übermäßige Werbung für eine Ressource von der Community als Spam interpretiert werden kann. Sie sollten gute, relevante Antworten veröffentlichen. Wenn ein oder zwei diesen Kurs erwähnen, ist das in Ordnung. Wenn Sie ihn jedoch in jeder Antwort veröffentlichen, wird er markiert und gelöscht.
ArtOfCode
2

Ich dachte, es gibt so etwas in IntelliJ, aber ich kann es nicht finden. Die einzige Bereinigung, die beim Speichern erfolgt, besteht darin, dass Leerzeichen an den Zeilenenden entfernt werden. Ich dachte, ich müsste dieses Verhalten an einer Stelle spezifizieren, aber ich sehe an dieser Stelle nichts, was damit zusammenhängt.

PanCrit
quelle
2

Wenn es um Prettier geht, verwenden Sie einfach einen File Watcher:

Referenzen => Tools => File Watchers => Klicken Sie auf +, um einen neuen Watcher hinzuzufügen => Prettier

https://prettier.io/docs/en/webstorm.html#running-prettier-on-save-using-file-watcher

Julien Malige
quelle
2
Schöner ist großartig, aber es funktioniert nicht für Sprachen / Formate außerhalb des Webs. Es formatiert js, ts, css, json usw., ist jedoch für C, C #, Java, Python usw. nutzlos - mit Ausnahme einiger früher Versuche mit Plugins.
Mattia