Formatowanie plików Intellij podczas zapisywania pliku


353

Pamiętam, że widziałem w IntelliJ lub Eclipse ustawienie formatowania (czyszczenia) plików za każdym razem, gdy są zapisywane. Jak go znaleźć (nie znalazłem go w ustawieniach)

Odpowiedzi:


235

Sugeruję wtyczkę zapisywania działań . Obsługuje również optymalizację importu i zmianę kolejności kodu.

Działa dobrze w połączeniu z wtyczką formatyzatora eclipse .

Wyszukaj i aktywuj wtyczkę:

wprowadź opis zdjęcia tutaj

Skonfiguruj:

wprowadź opis zdjęcia tutaj

Edycja: wygląda na to, że najnowsza wersja Intellij wtyczki akcji zapisu jest uruchamiana przez automatyczne zapisywanie Intellij. Może to być dość denerwujące, gdy trafi podczas edytowania.

Ten problem wtyczki github daje wskazówkę do niektórych możliwych rozwiązań:

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

W rzeczywistości próbowałem przypisać formatowanie do Ctrl+ Si działało dobrze - zapisywanie odbywa się teraz automatycznie.


Użyłem tego, ale po aktualizacji do Androida Studio 1.5.1 nie mogę go już znaleźć.
r1k0

1
Wtyczka została (jak na razie) ostatnio zaktualizowana 10.02.2016 i mówi Compatibility This plugin works with Java 6+ and Intellij IDEA Community Edition after 131 (around version 13)., że nie wiem, na której wersji IntelliJ Android Studio jest oparty. Czy możesz to sprawdzić?
Benjamin Peter

Na sam szczyt!
Nick Grealy,

Prawie dla mnie pracowało. Niestety „kod ponownego formatowania” zrobiłby tylko podzbiór rzeczy, które wykonuje „Kod> Kod ponownego formatowania” (przynajmniej w przypadku kodu Scala). Dlaczego?
Thilo,

Próbowałem tego, ale IntelliJ często oszczędza. Organizowanie importu pojawia się zawsze 2-3 naciśnięcia klawiszy.
Ashley,

443

To rozwiązanie działało dla mnie lepiej:

  1. Utwórz makro (użyłem Organizuj import, Formatuj kod, Zapisz wszystko)
  2. Przypisz to do klawisza (przesłoniłem Ctrl+ S)

Uwaga: Musisz zaznaczyć pole „Nie pokazuj tego komunikatu ponownie” po raz pierwszy dla zorganizowanego importu, ale potem działa zgodnie z oczekiwaniami.

Krok po kroku dla IntelliJ 10.0:

  1. Kod -> „Optymalizuj import ...”, jeśli pojawi się okno dialogowe, zaznacz pole „Nie pokazuj więcej tego komunikatu”., A następnie kliknij „Uruchom”.
  2. Narzędzia -> „Rozpocznij rejestrowanie makr”
  3. Kod -> „Optymalizuj import ...”
  4. Kod -> „Ponownie sformatuj kod ...”
  5. Plik -> „Zapisz wszystko”
  6. Narzędzia -> „Zatrzymaj rejestrowanie makra”
  7. Nazwij makro (coś w rodzaju „sformatowanego zapisu”)
  8. W Plik -> Ustawienia -> Mapa klawiszy, wybierz makro znajdujące się w „Menu głównym -> Narzędzia ->„ sformatowane zapisywanie ”
  9. Kliknij „Dodaj skrót klawiaturowy”, a następnie wykonaj żądane naciśnięcie klawisza. Jeśli wybierzesz Ctrl+ Sjak ja, zostaniesz zapytany, co zrobić z poprzednim Ctrl+ Sskrótem. Usunąć to. Zawsze możesz ponownie przypisać go później, jeśli chcesz.
  10. Cieszyć się!

W przypadku IntelliJ 11 wymień

krok 2. za pomocą: Edycja -> Makra -> „Rozpocznij rejestrowanie makra”
krok 6. za pomocą: Edycja -> Makra -> „Zatrzymaj rejestrowanie makra”

Cała reszta pozostaje taka sama.

IntelliJ 12

8. Preferencje zawierają ustawienia mapy klawiszy. Użyj pola wejściowego, aby przefiltrować zawartość, jak pokazano na zrzucie ekranu.

Intellij / Preferences / Keymap / Macros


4
W IntelliJ 11: 1: Rozpocznij rejestrowanie makra: Edycja -> Makra -> Rozpocznij rejestrowanie makra. 2: Postępuj zgodnie z instrukcjami powyżej. 3: Zatrzymaj rejestrowanie makra: Edycja -> Makra -> Zatrzymaj rejestrowanie makra. W mapie klawiszy makro jest zapisywane w folderze Makra zamiast w Menu głównym -> folder Narzędzia.
Markus K,

3
Jeśli jesteś zadowolony ze sposobu formatowania kodu, to podejście działa znacznie lepiej, jeśli zdecydujesz się sformatować cały kod w projekcie i zapisać wszystko. W przeciwnym razie podczas edycji wielu plików tylko aktywna zostanie sformatowana przed zapisaniem wszystkich zmodyfikowanych plików.
Drew Noakes

86

Poniżej znajduje się odpowiedź Neila.

IntelliJ 13 kroków:

  1. Kod -> Kod ponownego formatowania wprowadź opis zdjęcia tutaj
  2. Edycja -> Makra -> Rozpocznij rejestrowanie makra
  3. Kod -> Kod ponownego formatowania
  4. Plik -> Zapisz wszystko
  5. Edycja -> Makra -> Zatrzymaj rejestrowanie makra
  6. Nazwij makro (coś w rodzaju „sformatowanego zapisu”)
  7. Plik -> Ustawienia -> Mapa klawiszy
  8. Kliknij makro prawym przyciskiem myszy. Dodaj skrót klawiaturowy. Ustaw skrót klawiaturowy na Control + S. wprowadź opis zdjęcia tutaj
  9. IntelliJ poinformuje Cię o konflikcie skrótów klawiszowych. Wybierz „usuń”, aby usunąć inne zadania.

Ale to usuwa akcję „Zapisz”. Plakat widział, że w Eclipse mamy opcję formatowania kodu i organizowania importu automatycznie po zapisaniu pliku. Ta opcja jest (zakładam) nieobecna w idei IntelliJ. Jest to obejście polegające na powiązaniu klucza zapisu z kluczem ponownego formatowania.
Ganesh Krishnan,

3
Nie zgadzam się, @GaneshKrishnan. To obejście nie wiąże „klucza zapisu” z „kluczem ponownego formatowania”. Łączy go z makrem, które „formatuje i zapisuje”, dokładnie o to poprosił OP i co zostało zaimplementowane w Eclipse, ale wywołane przez pole wyboru.
dbm

1
Myślę, że może dla kroku 1 masz na myśli „Kod -> Pokaż okno dialogowe Reformat pliku”, aby ustawić wartości domyślne dla okna dialogowego Reformat pliku (aby były ustawione poprawnie dla kroku 3 - Kod reformowania)?
studgeek

61

Ustawiam go tak, aby automatycznie sprzątał przy odprawie, co zwykle jest dla mnie wystarczające. Jeśli coś jest zbyt brzydkie, po prostu uderzę w skrót ( Ctrl- Alt- L, Return). I widzę, że mają opcję automatycznego formatowania wklejonego kodu, chociaż nigdy tego nie użyłem.


12
Możesz także użyć Ctrl-Shift-F do sformatowania. To działa o wiele lepiej dla mnie, ponieważ Ctrl-Alt-L to polecenie blokady ekranu w Ubuntu.
Jason McVetta

22
Ctrl + Shift + F to Znajdź na ścieżce .
sterling

5
Jak skonfigurować coś, co stanie się podczas odprawy?
rob

2
Czy to działa, jeśli nie odprawiasz się za pomocą intelliJ, tj. Myślę, że to nie zadziała, jeśli odprawiasz się za pomocą narzędzia wiersza poleceń.

Jak to odpowiada na pytanie?
Ben

19

Ctrl+ Alt+ Lto format pliku (obejmuje dwa poniżej)

Ctrl+ Alt+ Ooptymalizuje import

Ctrl+ Alt+ Inaprawi wcięcie na określonej linii

Zazwyczaj uruchamiam kilka razy Ctrl+ Alt+ Lprzed podjęciem pracy. Wolę to zrobić czyszczenie / formatowanie na moje polecenie zamiast automatycznie.


Zamień Ctrl na Cmd dla Mac
Gerard

12
Ostrożnie w Linuksie, ponieważ Ctrl + Alt + Lzwykle jest to sesja blokująca. Konieczne będzie ponowne mapowanie jednej z funkcji.
niepodzielny

18

Jeśli masz InteliJ Idea Community 2018.2, kroki są następujące:

  1. W górnym menu kliknij: Edytuj> Makra> Rozpocznij nagrywanie makr (zobaczysz okno w prawym dolnym rogu ekranu potwierdzające, że makra są rejestrowane)
  2. W górnym menu kliknij: Kod> Kod ponownie sformatuj (zobaczysz opcję wybraną w prawym dolnym rogu)
  3. W górnym menu kliknij: Kod> Optymalizuj import (zobaczysz opcję wybraną w prawym dolnym rogu)
  4. W górnym menu kliknij: Plik> Zapisz wszystko
  5. W górnym menu kliknij: Edytuj> Makra> Zatrzymaj rejestrowanie makra
  6. Nazwij makro: „Formatuj kod, Organizuj import, Zapisz”
  7. W górnym menu ustawiasz: Plik> Ustawienia. W oknach ustawień klikasz Mapa klawiszy
  8. W polu wyszukiwania po prawej stronie wyszukujesz „zapisz”. Znajdziesz Zapisz wszystko (Ctrl + S). Kliknij go prawym przyciskiem myszy i wybierz „Usuń Ctrl + S”
  9. Usuń szukany tekst z pola, naciśnij przycisk Zwiń wszystko (drugi przycisk od lewego górnego rogu)
  10. Przejdź do makr, naciśnij strzałkę, aby rozwinąć makra, znajdź zapisane makro i kliknij je prawym przyciskiem myszy. Wybierz Dodaj skrót klawiaturowy i naciśnij Ctrl + S i dobrze.

Uruchom ponownie IDE i spróbuj.

Wiem, co powiesz, chłopaki przede mną napisali to samo. Ale pomyliłem się, wykonując kroki powyżej tego postu i chciałem napisać głupią wersję dla osób, które mają najnowszą wersję IDE.


13

Jeśli tworzysz w Flutter, dostępna jest nowa eksperymentalna opcja z 5.01.2018, która pozwala sformatować kod po zapisaniu. Ustawienia


9

Zakończyłem ponowne wiązanie Reformat code...akcji do Ctrl- S, zastępując domyślne wiązanie dla Save All.

Z początku może się to wydawać szalone, ale wydaje się, że IntelliJ oszczędza na praktycznie każdej akcji: przeprowadzaniu testów, budowaniu projektu, nawet przy zamykaniu karty edytora. Mam nawyk bicia Ctrl- Sdość często, więc to naprawdę działa dla mnie całkiem dobrze. Z pewnością łatwiej jest pisać niż domyślne wiązanie do formatowania.


5

IntellIJ 14 i&15: Podczas sprawdzania kodu w oknie Zatwierdź zmiany zaznacz pole wyboru Reformatuj kod, a następnie IntelliJ ponownie sformatuje cały kod, który sprawdzasz.

Źródło: www.udemy.com/intellij-idea-secrets-double-your-coding-speed-in-2-hours


2
Co powiedziałem tutaj
Tushar

4
Uwaga: nadmierna promocja jednego zasobu może być interpretowana przez społeczność jako spam. Powinieneś publikować dobre, trafne odpowiedzi, a jeśli jeden lub dwa wspominają o tym kursie, to w porządku - ale jeśli umieszczasz go w każdej odpowiedzi, zostanie oznaczony i usunięty.
ArtOfCode 24.04.16

2

Myślałem, że jest coś takiego w IntelliJ, ale nie mogę tego znaleźć. Jedynym czyszczeniem, które ma miejsce podczas zapisywania, jest usunięcie białej przestrzeni na końcach linii. Pomyślałem, że w pewnym momencie muszę sprecyzować to zachowanie, ale w tym momencie nie widzę nic powiązanego.


2

Jeśli chodzi o ładniejsze, po prostu użyj Obserwatora plików:

odnośniki => Narzędzia => Obserwatorzy plików => kliknij +, aby dodać nowego obserwatora => Ładniejsze

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


2
Ładniejsze jest świetne, ale nie działa dla języków / formatów poza Internetem. Sformatuje js, ts, css, json itp., Ale jest bezużyteczny dla C, C #, Java, Python itp. - z wyjątkiem niektórych wczesnych prób wtyczek.
Mattia,
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.