В любом случае (или ярлык) для автоматического импорта классов в IntelliJ IDEA, как в Eclipse?

123

В Eclipse при кодировании на Java нажмите Ctrl+ Shift+ Oавтоматически импортируйте все классы.
В NetBeans это делается с помощью Ctrl+ Shift+ I.

Есть ли способ сделать это в IntelliJ IDEA?

Я искал эквивалентный ярлык в конфигурации google, StackOverflow, IntelliJ IDEA и на официальном сайте IntelliJ. Сочетания клавиш, которые нельзя пропустить.

bywronski
источник
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 автоматически добавляет за меня оператор импорта для этого класса.

Javaru
источник
7
Когда вы редактируете старые файлы, это намного больше.
Adam
У меня это не работает. Когда я нажимаю Enter после выбора класса, который отображается в списке автозаполнения, IntelliJ не импортирует его. Вместо этого он записывает полное имя класса. Это очень раздражает и бесполезно. Вы знаете, как это исправить?
Родриго
^ Причина такого поведения в том, что класс, который я пытался импортировать, не находился в пути сборки. После добавления нажатие Enter правильно импортировало класс.
Родриго
3
Я пришел к этому вопросу, надеясь найти такое сочетание клавиш для IntelliJ. Проблема в том, что если я прокомментирую большой участок кода, содержащий классы, IntelliJ автоматически удалит импорт пространства имен. Теперь, если я перейду и раскомментирую код, IntelliJ не будет повторно импортировать пространства имен для того же самого, и будет довольно головной болью продолжать выполнять ALT + Enter для каждого из них. Любое решение?
Rahul Saini
Я согласен с @RahulSaini в этом. Нет причин использовать две отдельные ключевые карты для одного действия. Я не хочу и не должен делать несколько вещей для выполнения одного действия. Я бы сказал, что на данный момент intellij просто настроен против этого, и у него нет реальной причины не «организовывать» импорт, а не «оптимизировать» импорт. Я действительно хочу проголосовать против этого ответа, даже если он технически правильный.
peekay
73

Не все сразу. Но вы можете нажать

Alt + Enter

Люди считают, что это работает только тогда, когда вы занимаетесь конкретным предметом. Но это действительно работает для «следующего отсутствующего типа». Поэтому, если вы продолжаете нажимать Alt+ Enter, IDEA исправляет одно за другим, пока все не будут исправлены.

teknopaul
источник
1
Я предполагаю, что вы имеете в виду символы клавиш клавиатуры. Их можно добавить с помощью kbdтега<kbd>Alt</kbd> + <kbd>Enter</kbd>
GuiSim
1
Перейдите к классу, который не может найти, и нажмите ⌥ + Enter. Рад, что прокрутил страницу вниз.
Ajak6 03
1
Есть ли способ переназначить Alt+Enterкомбинацию, более удобную для пальцев? Через IntelliJ IDEA > Preferences > Keymapменю не разобрался .
лайлайлом
1
Я обнаружил, что в Eclipse отсутствует добавление оператора импорта проще, чем в IDEA. Я всегда не понимаю, куда поставить курсор мыши перед тем, как набрать Alt + Enter
vikramvi
Alt + Enter в сочетании с F2 (Next Highlighted Error) обычно довольно быстро даже для (слишком) больших классов.
osundblad
10

Похоже, IntelliJ IDEA автоматически импортирует пропущенный класс, и вы можете импортировать их вручную, нажав Alt+ Enter.

Wuaner
источник
8

Я думаю, что лучшим решением, хотя и не совсем таким, как Eclipse / Netbeans, является изменение настроек «Оптимизировать импорт».

Под Preferences > Editor > General > Auto Import

Устанавливать Add unambiguous imports on the fly

Edit: Используя этот метод, когда есть неоднозначный импорт, IntelliJ даст вам знать, и вы можете использовать Alt+ Enterметод изложенный в ответе по Wuaner

Я считаю, что почти всегда наиболее подходящий импорт находится в верхней части списка.

comfytoday
источник
1
@Raja Я тоже не знаю почему. Я знаю, что когда я сказал своим коллегам, что они решили не использовать этот метод, хотя ... загадочный.
comfytoday
Инструкции довольно четкие. Он только автоматически импортирует unambiguousклассы. И я использую его с последних двух дней в моем проекте 3000+ классов. Работает как шарм. Спасибо, что поделился.
Раджа Анбажаган 02
5

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

ALT+ Enter-> Показать действия намерения и быстрые исправления.

F2 -> Следующая выделенная ошибка.

Lyncean Patel
источник
3

Другой вариант - попросить IDEA вести себя как eclipse с помощью сочетаний клавиш eclipse. Вы можете использовать все ярлыки eclipse , включив это.

Вот шаги:

1- Открыв IDEA, нажмите Control + ` . Появятся следующие варианты.

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

2- Выберите раскладку. Вы увидите еще одно всплывающее окно. Выберите там Eclipse.

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

3- Теперь нажмитеCtrl + Shift + O . Вы сделали!

правый
источник
Я попытался. Он не заставляет «организовать импорт» вести себя так, как Eclipse.
Флориан Ф
0

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

Нарендрар
источник