Будь-який спосіб (або ярлик) для автоматичного імпорту класів в IntelliJ IDEA, як у Eclipse?


123

У програмі Eclipse кодуйте Java та натискайте Ctrl+ Shift+ Oauto імпортувати всі класи автоматично.
У NetBeans це робиться за допомогою Ctrl+ Shift+ I.

Чи можливо це зробити в IntelliJ IDEA?

Я шукав еквівалентний ярлик у конфігурації google, StackOverflow, IntelliJ IDEA та на офіційному веб-сайті IntelliJ Клавіші швидкого доступу, які ви не можете пропустити



4
Шукаючи комбінацію клавіш / клавіатури, введіть Ctrl-shift-A (або Cmd-shift-A на Mac) та знайдіть команду. Наприклад, тут, набравши "імпорт", буде показана команда "Оптимізувати імпорт" та її ярлик на клавіатурі.
JB Nizet

2
"Оптимізувати імпорт" не працює, додайте Класи
bywronski

Автоматичне імпортування для класів працює, якщо ввімкнути його в розділі "Налаштування> Редактор> Загальне> Авто імпорт".
Андреа Бергонцо

це справді найбільший недолік Intellij. це біль. конфлікти та злиття при імпорті є дурним, але Intellij не може легко допомогти вам вирішити його
bharal

Відповіді:


103

IntelliJ IDEA не має жодних дій щодо додавання імпорту. Швидше він має можливість робити такі, як ви набираєте текст. Якщо ввімкнути "Додавання однозначного імпорту" в меню " Налаштування"> "Редактор"> "Загальне"> "Імпорт авто" , IntelliJ IDEA додасть їх під час введення без необхідності будь-яких ярликів. Ви також можете додати класи та пакети, щоб виключити їх з автоматичного імпорту, щоб зробити клас, який ви сильно використовуєте, що суперечить з іншими однойменними класами однозначно.

Для класів, які є неоднозначними (або ви вважаєте за краще вимкнено опцію "Додати однозначний імпорт на льоту"), просто введіть назву класу (просто ім'я в порядку, не потрібно повністю кваліфікувати). Використовуйте завершення коду та виберіть потрібний клас:

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

Зверніть увагу на повністю кваліфіковані імена праворуч. Коли я виберу потрібний і натисніть Enter, IDEA автоматично додасть заяву про імпорт. Це працює так само, якби я вводив ім’я конструктора. Для статичних методів ви можете навіть просто продовжувати вводити потрібний метод. На наступному знімку екрану ще не імпортовано жодного класу "StringUtils".

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

Крім того, введіть назву класу, а потім натисніть Alt+ Enterабо + Enterна "Показати дії намірів та швидкі виправлення", а потім виберіть опцію імпорту.

Хоча я ніколи цього не використовував, я думаю, що плагін стороннього розробника формату Eclipse Code Formatter зробить все, що ви хочете. У ньому зазначено "емулює імпорт оптимізації Eclipse" як особливість. Дивіться його інструкції для отримання додаткової інформації. Зрештою, я підозрюю, що ви знайдете, що вбудовані функції IDEA спрацюють нормально, як тільки ви звикнете до їх парадигми. Взагалі IDEA використовує концепцію "розвиватися за намірами". Тож замість того, щоб переривати роботу над розробкою, щоб додати заяву про імпорт, я просто наберіть потрібний клас (мій намір), і IDEA автоматично додає для мене заяву про імпорт.


7
Це набагато більше працює таким чином, коли ви редагуєте старі файли.
Адам

Це не працює для мене. Коли я натискаю Enter після вибору класу, який відображається у списку автозаповнення, IntelliJ не імпортує його. Натомість він пише повністю кваліфіковану назву класу. Це дуже дратує і марно. Ви знаєте, як це виправити?
Родріго

^ Причина такої поведінки полягає в тому, що клас, який я намагався імпортувати, не знаходився на шляху збирання. Після додавання клавіші Enter правильно імпортував клас.
Родріго

3
Я прийшов до цього питання, сподіваючись знайти якийсь такий ключовий ярлик для IntelliJ. Проблема полягає в тому, що якщо я коментую великий розділ коду, що має класи, IntelliJ автоматично видаляє імпорт простору імен. Тепер, якщо я перейду і відменшую код, IntelliJ не повторно імпортує простори імен для тих же, і це стає досить головним болем, щоб продовжувати робити ALT + Enter для кожного з них. Будь-яке рішення?
Рахул Саїні

Я погоджуюся з @RahulSaini з цього приводу. Немає причин мати дві окремі ключові карти для однієї діяльності. Я не хочу і не повинен робити кілька речей, щоб виконати одну дію. Я б сказав, що на даний момент Intellij просто воює з цього приводу і не має реальних причин не "організовувати" імпорт на відміну від "оптимізації" імпорту. Я дуже хочу голосувати за цю відповідь, навіть якщо це технічно правильно.
peekay

73

Не всі відразу. Але ти можеш натиснути

Alt + Enter

Люди припускають, що це працює лише тоді, коли ви знаходитесь у конкретному пункті. Але насправді це працює для "наступного відсутнього типу". Тож якщо ви продовжуєте натискати Alt+ Enter, IDEA виправляє один за одним, поки всі не виправлені.


1
Я припускаю, що ви посилаєтесь на символи клавіатури клавіатури. Їх можна додати за допомогою kbdтегу<kbd>Alt</kbd> + <kbd>Enter</kbd>
GuiSim

1
Перейдіть до класу, якого він не в змозі знайти, і натисніть ⌥ + Enter. Радий, що я прокрутився вниз.
Ajak6

1
Чи є спосіб перевпорядкувати Alt+Enterбільш зручну для пальців комбінацію? Я не міг зрозуміти це через IntelliJ IDEA > Preferences > Keymapменю.
лайлайлом

1
Я знайшов спосіб Eclipse пропустити додавання заяви про імпорт простіше, ніж IDEA. Мене завжди бентежить, куди поставити курсор миші, перш ніж набрати Alt + Enter
vikramvi

Alt + Enter у поєднанні з F2 (Наступна виділена помилка), як правило, досить швидко навіть для (занадто) великих класів.
osundblad

10

Схоже, IntelliJ IDEA імпортує пропущений клас автоматично, і ви можете імпортувати їх, натиснувши Alt+ Enterвручну.


8

Я думаю, що найкраще рішення, хоча і не зовсім таке, як Eclipse / Netbeans, - змінити параметри "Оптимізувати імпорт".

Під Preferences > Editor > General > Auto Import

Встановити Add unambiguous imports on the fly

Редагувати: Використовуючи цей метод, коли є неоднозначний імпорт, IntelliJ повідомить про це, і ви можете потім використовувати метод Alt+, Enterвикладений у відповіді Wuaner

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


1
@Raja Я не впевнений, чому також. Я знаю, що коли я сказав своїм колегам, вони вирішили не використовувати цей метод, хоча ... загадковий.
comfytoday

Інструкція досить чітка. Він лише імпортує unambiguousкласи. І я використовую його з останніх двох днів у проекті 3000+ класів. Працює як шарм. Дякую, що поділились.
Раджа Анбаджаган

5

Неможливо імпортувати всіх одразу, але можна використовувати таку комбінацію:

ALT+ Enter-> Показати дії намірів та швидкі виправлення.

F2 -> Наступна виділена помилка.


3

Інший варіант - попросити IDEA вести себе як затемнення за допомогою клавіш швидкого доступу eclipse. Ви можете використовувати всі ярлики затемнення , включивши це.

Ось такі кроки:

1- Коли IDEA відкрита, натисніть клавішу Control + ` . Наступні варіанти з’являться.

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

2- Виберіть Keymap. Ви побачите ще одне спливаюче вікно. Виберіть там Затемнення.

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

3- Тепер натиснітьCtrl + Shift + O . Ви закінчили!


Я намагався. Це не змушує "організовувати імпорт" поводитись із затьмаренням.
Флоріан F

0

Використовуйте control+ option+ Lдля автоматичного імпортування пакета та автоматично видалення невикористаних пакетів на Mac

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.