Jak włączyć kod automatycznego formatowania dla Intellij IDEA?

129

Czy jest to możliwe w Intellij IDEA po wpisaniu ';' lub naciśnij „Enter”, czy formatowanie tego ciągu?

Na przykład, aby:

a+b=10;

po:

a + b = 10;

Czy tylko możliwa opcja: Kod> Sformatuj kod ... ?

Dziękuję Ci!

0x131313
źródło
1
Alt+ c+r
Gayan Weerakutti,
jeśli chcesz, aby ta funkcja została uwzględniona w samym IntelliJ (nie w żadnej wtyczce), zagłosuj tutaj: youtrack.jetbrains.net/issue/IDEABKL-5806
Line,

Odpowiedzi:

181

Skróty formatowania w Intellij IDEA to:

  • W systemie Windows: Ctrl+ Alt+L
  • W przypadku Ubuntu: Ctrl+ Alt+ Windows+ L
  • W przypadku komputerów Mac: ⌥ (Option)+ ⌘ (Command)+L
axelrod
źródło
88
Tak, ale chciałbym, aby stało się to automatycznie bez naciskania klawisza skrótu.
0x131313
Makro? ctrl + alt + l staje się ctrl + alt + l + enter
Jeff
17
Pytanie wyraźnie określa „automatyczne formatowanie” po zapisaniu każdego wiersza.
bokan
2
@axelrod czy istnieje sposób, aby zrobić to automatycznie podczas zapisywania lub kompilowania kodu
Kasun Siyambalapitiya
3
To nie odpowiada na pytanie. Odpowiedź udzielona przez Nafiur Rahman Khadem tak.
Dakatine
22

Znalazłem na to dwa sposoby:

  1. Idź do Settings> Keymap.W prawej części przejdź do Editor Actions> complete current statement.Kliknij na to i wybierz dodaj skrót klawiaturowy. Naciśnij ; i wybierz ok.

  2. Użyj makra. Iść do

Edit> Macros> Start Macro Recording.

Teraz naciśnij średnik i skrót klawiaturowy, aby ponownie sformatować kod (skrót klawiaturowy można znaleźć w innych odpowiedziach lub w ustawieniach> mapa klawiszy).

Po ponownym sformatowaniu przejdź do

Edit> Macros> Stop Macro Recording

Zapisz makro pod nazwą (format automatyczny lub coś innego). Następnie idź do

Settings> Keymap> Macros> auto format (nazwa makra).

Kliknij tam i wybierz dodaj skrót klawiaturowy, a następnie naciśnij średnik i kliknij OK. Teraz za każdym razem, gdy naciśniesz średnik, zapisze średnik i automatycznie formatuje.

Nafiur Rahman Khadem
źródło
Miły. Dodałem również Shift+[użycie pierwszej metody do formatowania linii podczas pisania ifinstrukcji i metod i tym podobnych. Jednak z jakiegoś powodu Enterwydawało się, że nie działa.
Matt
1
To było bardzo pomocne, to dziwne, że Intellij w ogóle nie ma opcji automatycznego formatowania
Teedeez
12

Eclipse ma opcję automatycznego formatowania podczas zapisywania pliku. W IntelliJ nie ma takiej opcji, chociaż można skonfigurować makro dla klawiszy Ctrl + S (Cmd + S na Macu), aby sformatować kod i zapisać go.

Formatowanie Intellij przy zapisywaniu pliku

Mouscellaneous
źródło
7

Domyślnym jest Ctrl+ Alt+. L Istnieje okno dialogowe mapowania klawiszy, w którym można skonfigurować / nadpisać wszystkie skróty klawiaturowe.

Przejdź do Plik-> Ustawienia-> Mapa klawiszy

wprowadź opis obrazu tutaj

vels4j
źródło
7

Plik-> Ustawienia -> Mapa klawiszy-> Uzupełnij bieżącą instrukcję

Dodałem ;tam klucz. Podczas wpisywania ';' na końcu wiersza jest to formatowanie automatyczne.

AKTUALIZACJA

Zdałem sobie sprawę, że w niektórych sytuacjach spowoduje to pewne problemy. Zamiast tego użyj Ctrl+ Shift+ Enter. Ten klawisz może być używany w dowolnej pozycji kursora w linii. Doda ;na końcu linii. Ten skrót ma również inne przydatne funkcje.

lubić:

public void someMethod()

po skrócie:

public void someMethod() {
    // The cursor is here
}

więc formatowanie przy wstawianiu ;nie jest konieczne.

user12043
źródło
Mądry, ale nie dla Kotlina
jobbert
6

Można to również osiągnąć za pomocą Ctrl + WindowsBtn + Alt + L. Będzie to ważne dla niektórych osób, ponieważ w niektórych maszynach wirtualnych Ctrl + Alt + L może Cię wylogować.

zaszokować
źródło
3

Żadne z rozwiązań w Intellij nie jest tak eleganckie (ani użyteczne) jak w Eclipse. To, czego potrzebujemy, to żądanie funkcji do intellij, abyśmy mogli dodać podpięcie (jakie akcje wykonać), gdy IDE automatycznie zapisuje.

W Eclipse możemy dodać akcje „po zapisaniu”, takie jak organizowanie importu i formatowanie klasy. Tak, musisz zrobić "save" lub ctrl-s, ale haczyk jest bardzo wygodny.

ccstep1
źródło
1
czy jest jakikolwiek kontakt z intellijem w sprawie htis? Jeśli tak, prześlij link tutaj :)
Ruthi Ruth
@RuthiRuth to znalazło;) youtrack.jetbrains.net/issue/IDEABKL-5806
Line
3

jeśli chcesz, możesz skorzystać z wtyczki saveActions . Możesz sformatować plik, zoptymalizować import i wiele innych rzeczy, jest naprawdę konfigurowalny i łatwy w konfiguracji.

Danniel Alejandro
źródło
2

Na Macu jest to Alt+ Command+ L(zakładając, że nie zmieniłeś żadnego z klawiszy modyfikujących ani skrótów klawiaturowych Intellij z ich domyślnego stanu)

mithunpaul
źródło
1

Cóż, to nie jest możliwe, ale w intellij 13, co powiesz na dodanie gestu myszy, coś w rodzaju pojedynczego kliknięcia lewym przyciskiem myszy w celu ponownego sformatowania kodu? Lub jeśli nie używasz dużo myszy, dodaj bardzo prosty skrót klawiszowy, którego używasz przez cały czas (być może „enter”? Nie jestem pewien, czy intellij byłby z tego zadowolony, szczerze mówiąc)

sakis kaliakoudas
źródło
2
Dlaczego głos przeciw? Mówię, że to, czego chcesz, nie jest możliwe i staram się zapewnić jak najbliższą rzecz ..
sakis kaliakoudas
Głos przeciwny można łatwo wyjaśnić: kliknięcie myszą. Dużą zaletą IntelliJ są skróty i to, że nie potrzebujesz często myszy. Jeśli dużo kodujesz, nie chcesz dużo używać myszy, ponieważ posługujesz się klawiaturą szybciej. Istnieje już skrót do formatowania.
Phil
1

Sposób, w jaki zaimplementowałem automatyczne reformowanie jak w Microsoft Visual Studio (nie działa idealnie):

1. Edit > Macros > Start Macro Recording
2. Press continuously: Enter + Ctrl+Alt+I
3. Edit > Macros > Stop Macro Recording (Name it for example ReformatingByEnter)

Teraz musimy wykonać te same czynności, ale dla Ctrl + Alt + L +;

4. Edit > Macros > Start Macro Recording
5. Press continuously: ; + Ctrl+Alt+I
6. Edit > Macros > Stop Macro Recording (Name it for example ReformatingBy;)

Teraz musimy przypisać HotKeys do tych makr:

7. File > Settings > Keymap > press on a gear button > Duplicate...
8. Unfold a macro button (beneath) and by right clicking on two 
ours macros assign HotKeys for them: "Enter" and ";" correspondingly.
Rostislav Teryaev
źródło
Może to być ograniczenie mojej klawiatury, ale wydaje mi się, że mogę nagrywać tylko 3 klawisze na raz.
Matt
1

Wiem, że to pytanie jest dość stare, ale w rzeczywistości istnieje wtyczka Save Actions dla IntelliJ, którą można skonfigurować tak, aby automatycznie formatowała kod.

algiogia
źródło
1

Możesz to zrobić za pomocą wtyczki Save Actions Zapoznaj się z tym artykułem na temat konfiguracji wtyczki.

Wtyczka Save Actions Obsługuje konfigurowalne, podobne do Eclipse, zapisywanie akcji, w tym „optymalizuj import”, „przeformatuj kod”, „przestaw kod”, „kompiluj plik” i kilka szybkich poprawek dla Javy, takich jak „dodaj / usuń 'ten' kwalifikator” itp. Wtyczka wykonuje skonfigurowane akcje, gdy plik jest synchronizowany (lub zapisywany) na dysku.

  1. Zainstaluj wtyczkę
  2. Idź do Ustawienia > Inne ustawienia > Zapisz działania
  3. Zaznacz opcję Aktywuj zapisywanie przy zapisywaniu
  4. Zaznacz opcję Zmień format pliku
  5. Zastosuj> OK

wprowadź opis obrazu tutaj

Wolę jednak klawisze skrótu, na Macu

Aby sformatować kod: Ctrl+ Alt(Option)+L

A dodatkowo robię: Ctrl+ Alt(Option)+ O , To usunie nieużywane importy i sformatuje również listę importu.

główny
źródło