Переформатування Intellij на збереження файлів


353

Я пам'ятаю, як в IntelliJ, так і в Eclipse налаштовувався переформатувати (очистити) файли, коли вони зберігаються. Як його знайти (не знайшов у налаштуваннях)

Відповіді:


235

Я пропоную плагін збереження дій . Він також підтримує оптимізацію імпорту та перестановку коду.

Добре працює в поєднанні з плагіном форматування затемнення .

Шукайте та активуйте плагін:

введіть тут опис зображення

Налаштуйте його:

введіть тут опис зображення

Редагувати: схоже, що останній варіант Intellij плагін дії збереження запускається автоматичним збереженням Intellij. Це може бути дуже дратує, коли він потрапляє під час редагування.

Цей випуск github плагіна дає підказку для деяких можливих рішень:

https://github.com/dubreuia/intellij-plugin-save-action/isissue/63

Насправді я намагався призначити переформатування Ctrl+, Sі це спрацювало чудово - економія робиться автоматично.


Я використав це, але після оновлення до Android Studio 1.5.1 більше не можу його знайти.
r1k0

1
Плагін останній раз оновлювався 10.02.2016 і каже, що Compatibility This plugin works with Java 6+ and Intellij IDEA Community Edition after 131 (around version 13).я не знаю, на якій версії базується IntelliJ Android Studio. Ви можете це перевірити?
Бенджамін Пітер

На вершину ти йдеш!
Нік Грілі

Майже працював на мене. На жаль, "код переформатування" буде робити лише підмножину речей, які робить "Код> Код переформатування" (принаймні, для коду Scala). Чому так?
Тіло

Пробував це, але IntelliJ економить далеко далеко. Організація імпорту спливає колись 2-3 натискання клавіш.
Ешлі

443

Це рішення краще для мене працювало:

  1. Зробити макрос (я використав "Організувати імпорт, форматувати код", "Зберегти все")
  2. Призначте це натисканням клавіші (я перевернув Ctrl+ S)

Примітка. Вам потрібно буде встановити прапорець "Не показувати це повідомлення знову" вперше для організованого імпорту, але воно працює так, як очікувалося після цього.

Крок за кроком для IntelliJ 10.0:

  1. Код -> "Оптимізувати імпорт ...", якщо з'явиться діалогове вікно, поставте прапорець "Не показувати це повідомлення знову". Потім натисніть "Виконати".
  2. Інструменти -> "Почати запис макросу"
  3. Код -> "Оптимізувати імпорт ..."
  4. Код -> "Код переформатування ..."
  5. Файл -> "Зберегти все"
  6. Інструменти -> "Зупинити запис макросу"
  7. Назвіть макрос (щось на зразок "відформатоване збереження")
  8. У меню Файл -> Налаштування -> Клавіатура виберіть макрос, розташований у "Головне меню -> Інструменти ->" збереження у форматі "
  9. Клацніть «Додати комбінацію клавіш», а потім виконайте потрібний набір клавіш. Якщо ви виберете Ctrl+ Sяк я, він запитає, що вам робити з попереднім Ctrl+ Sярликом. Видали це. Ви завжди можете перепризначити його пізніше, якщо хочете.
  10. Насолоджуйтесь!

Для IntelliJ 11 замініть

крок 2. за допомогою: Редагувати -> Макроси -> "Почати запис макросу"
крок 6. за допомогою: Редагувати -> Макроси -> "Зупинити запис макросу"

Все інше залишається незмінним.

IntelliJ 12

8. Налаштування містять параметри Keymap. Використовуйте поле введення для фільтрації вмісту, як показано на скріншоті.

Intellij / Налаштування / Мапа клавіатури / Макроси


4
В IntelliJ 11: 1: Початок запису макросу: Редагувати -> Макроси -> Запустити запис макросу. 2: Дотримуйтесь вказівок вище. 3: Зупинення запису макросу: Редагувати -> Макроси -> Зупинити запис макросу. У Keymap макрос зберігається у папці Макроси замість головного меню -> папки Інструменти.
Маркус К

3
Якщо ви задоволені тим, як переформатується код, то такий підхід працює набагато краще, якщо ви вирішите переформатувати весь код у проекті та зберегти все. В іншому випадку, коли ви робите багатофайлові редагування, лише активне переформатується перед збереженням усіх модифікованих.
Дрю Ноакс

86

Нижче оновлена ​​відповідь Ніла.

13 кроків IntelliJ:

  1. Код -> Код переформатування введіть тут опис зображення
  2. Редагувати -> Макроси -> Запустити запис макросу
  3. Код -> Код переформатування
  4. Файл -> Зберегти все
  5. Редагувати -> Макроси -> Зупинити запис макросів
  6. Назвіть макрос (щось на зразок "відформатоване збереження")
  7. Файл -> Налаштування -> Клавіатура
  8. Клацніть правою кнопкою миші макрос. Додати ярлик клавіатури. Встановіть комбінацію клавіш на Control + S. введіть тут опис зображення
  9. IntelliJ повідомить вас про конфлікт гарячих клавіш. Виберіть "видалити", щоб видалити інші завдання.

Але це видаляє дію "Зберегти". Що бачив плакат, це те, що в Eclipse у нас є можливість форматувати код та організувати імпорт автоматично, коли файл зберігається. Цей варіант (я припускаю) відсутній в ідеї IntelliJ. Це робота, навколо якої прив'язується ключ збереження до ключа переформатування.
Ганеш Крішнан

3
Я не згоден, @GaneshKrishnan. Це вирішення не пов'язує "зберегти ключ" з "ключем переформатування". Він пов'язує його з макросом, який "переформатує і зберігає", саме це вимагало ОП і те, що реалізовано в Eclipse, але спрацьовує прапорець.
dbm

1
Я думаю, що, можливо, на кроці 1 ви маєте на увазі "Код -> Показати діалогове вікно діалогу переформатування", щоб встановити стандартні параметри для діалогового вікна переформатування (щоб вони були встановлені правильно для кроку 3 - Код переформатування)?
studgeek

61

Я налаштовую його на автоматичне прибирання під час реєстрації, що зазвичай для мене досить добре. Якщо щось занадто потворне, я просто натисну ярлик ( Ctrl- Alt- L, Return). І я бачу, у них є можливість автоматичного форматування вставленого коду, хоча я ніколи цього не використовував.


12
Ви також можете використовувати Ctrl-Shift-F для форматування. Для мене це працює набагато краще, оскільки Ctrl-Alt-L - це команда блокування екрана в Ubuntu.
Джейсон МакВетта

22
Ctrl + Shift + F - Знайти на шляху .
stackular

5
Як налаштувати щось, що трапиться під час реєстрації?
грабувати

2
Чи працює це, якщо ви не використовуєте IntelliJ, тобто я думаю, що це не спрацює, якщо ви використовуєте інструмент командного рядка.

Як це відповідає на питання?
Бен

19

Ctrl+ Alt+L - це форматний файл (включає два нижче)

Ctrl+ Alt+O оптимізує імпорт

Ctrl + Alt + Iвиправить відступ у певному рядку

Зазвичай я бігаю Ctrl+ Alt+ Lкілька разів, перш ніж виконувати свою роботу. Я вважаю за краще робити очищення / переформатування за моєю командою, а не автоматично.


Замініть Ctrl на Cmd на Mac
Джерард

12
Обережно в Linux, як Ctrl + Alt + Lце зазвичай блокується сесія. Вам потрібно буде переробити одну з функцій.
неподільний

18

Якщо у вас є InteliJ Idea Community 2018.2, кроки є такими як:

  1. У верхньому меню натисніть: Редагувати> Макроси> Запустити записи макросу (ви побачите вікно правого нижнього кута екрана, що підтверджує, що макроси записуються)
  2. У верхньому меню натисніть: Код> Код переформатування (у нижньому правому куті ви побачите опцію)
  3. У верхньому меню натисніть: Код> Оптимізувати імпорт (у нижньому правому куті ви побачите опцію)
  4. У верхньому меню натисніть: Файл> Зберегти все
  5. У верхньому меню натисніть: Редагувати> Макроси> Зупинити запис макросу
  6. Ви називаєте макрос: "Код форматування, організуйте імпорт, збережіть"
  7. У верхньому меню ви годинник: Файл> Налаштування. У вікнах налаштувань ви натискаєте Keymap
  8. У вікні пошуку праворуч ви шукаєте "зберегти". Ви знайдете Save All (Ctrl + S). Клацніть правою кнопкою миші та виберіть "Видалити Ctrl + S"
  9. Видаліть текст пошуку з поля, натисніть кнопку Згорнути все (Друга кнопка вгорі зліва)
  10. Перейдіть до макросів, натисніть стрілку, щоб розширити макроси, знайти збережений макрос і клацніть правою кнопкою миші на ньому. Виберіть Додати ярлик клавіатури та натисніть Ctrl + S і добре.

Перезавантажте IDE і спробуйте.

Я знаю, що ти скажеш, хлопці до мене написали те саме. Але я заплутався, використовуючи кроки над цією публікацією, і мені хотілося написати тупу версію для людей, які мають останню версію IDE.


13

Якщо ви розробляєте Flutter, з 5/1/2018 з'явився новий експериментальний варіант, який дозволяє форматувати код при збереженні. Налаштування


9

Я завершив повторну Reformat code...дію до Ctrl- S, замінивши прив'язку за замовчуванням на Save All.

Спочатку це може здатися божевільним, але здається, що IntelliJ економить практично на кожному дії: запуску тестів, побудові проекту, навіть при закритті вкладки редактора. У мене є звичка бити Ctrl- Sдосить часто, тому це насправді працює для мене досить добре. Це, звичайно, простіше ввести, ніж прив'язка за замовчуванням для переформатування.


5

IntellIJ 14 && 15: Коли ви перевіряєте код у діалоговому вікні «Зміни змін», поставте прапорець Переформатувати код коду, і IntelliJ переформатуватиме весь код, який ви реєструєте.

Джерело: www.udemy.com/intellij-idea-secrets-double-your-coding-speed-in-2-hours


2
Що я тут
Тушар

4
Будьте уважні, що надмірне просування одного ресурсу може трактуватися громадою як спам. Ви повинні розмістити гарні, відповідні відповіді, і якщо один або два трапляються згадувати цей курс, це добре, але якщо ви публікуєте його у кожній відповіді, він буде позначений і видалений.
ArtOfCode

2

Я думав, що в IntelliJ є щось подібне, але не можу його знайти. Єдине очищення, яке відбувається при збереженні, - це те, що білі місця на кінцях рядків видаляються. Я думав, що я повинен зазначити таку поведінку в один момент, але я не бачу нічого спільного в цьому моменті.


2

Якщо мова йде про гарніші, просто використовуйте File Watcher:

reference => Tools => File Watchers => клацніть +, щоб додати нового спостерігача => Гарніший

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


2
Гарніше, але це не працює для мов / форматів поза Інтернетом. Він буде форматувати js, ts, css, json тощо, але марний для C, C #, Java, Python тощо - за винятком деяких ранніх спроб плагінів.
Маттіа
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.