Что возможно в IntelliJ, что невозможно в Eclipse?

Я слышал от людей, которые перешли в ту или иную сторону и которые клянутся тем или другим.

Будучи большим поклонником Eclipse, но не имея времени опробовать IntelliJ, мне интересно услышать от пользователей IntelliJ, которые являются «бывшими Eclipsians», некоторые конкретные вещи, которые вы можете делать с IntelliJ, которые вы не можете делать с Eclipse. .

Примечание : Это не субъективный вопрос и вовсе не означает превращения в священную войну IDE. Пожалуйста, приглушите ответы на любые флеймбайты .

366
задан 5 revs, 4 users 62% 6 January 2012 в 05:17
поделиться

41 ответ

адрес . Удерживая клавишу Ctrl, щелкните person.name , и вы перейдете к методу getName () класса Person .

Введите Pattern.compile(""); put \\ there, нажмите CTRL-SPACE и посмотрите полезный совет о том, что вы можете вставить в свое регулярное выражение. Вы также можете использовать инъекцию языка здесь - определите свой собственный метод, который принимает строковый параметр, объявите в диалоге опций IntelliLang, что ваш параметр является регулярным выражением - и он также даст вам автозаполнение. Излишне говорить, что это подчеркивает неправильные регулярные выражения.

Другие функции

Есть несколько функций, которые, я не уверен, присутствуют в Eclipse или нет. Но, по крайней мере, каждый член нашей команды, который использует Eclipse, также использует какой-то инструмент слияния для объединения локальных изменений с изменениями из системы контроля версий, обычно WinMerge. Мне это никогда не нужно - мне достаточно слияния в IDEA. В 3 клика я вижу список версий файлов в системе контроля версий, еще в 3 клика я могу сравнить предыдущие версии или предыдущую и текущую и, возможно, объединить.

Позволяет указать, что мне нужны все файлы .jars в папке WEB-INF\lib, не выбирая каждый файл отдельно, поэтому, когда кто-то фиксирует новый файл .jar в эту папку, он автоматически его забирает.

Упомянутое выше, вероятно, составляет 10% от того, что он делает. Я не пользуюсь Maven, Flex, Swing, EJB и многими другими вещами, поэтому не могу сказать, как это помогает с ними. Но это так.

185
ответ дан 12 revs, 4 users 70% 6 January 2012 в 05:17
поделиться

Преамбула к моему ответу: Мое использование Eclipse ограничено. Нам нужна была Java IDE для работы как на Windows, так и на Mac, и порт Mac замедлялся с каждым днем. Это было много лет назад, и я уверен, что теперь все в порядке. Но это то, что заставило нас перейти на IntelliJ, и мы были счастливы с этим.

А теперь мой ответ: одно большое отличие, о котором я еще не упоминал, заключается в том, что техническая поддержка лучше с IntelliJ / Jet Brains. Мы отправляем электронное письмо в JetBrains и получаем окончательный ответ менее чем за час. Поиск ответов на проблемы Eclipse приводит к обычным ответам «Ты глупый идиот» (обычно небольшое количество ответов) вместе с гораздо большим количеством проницательных, полезных ответов. Но чтобы получить реальный ответ, нужно немного разобраться.

2
ответ дан Jim Dodd 6 January 2012 в 05:17
поделиться

Одна очень полезная функция - возможность частично построить проект реактора Maven, чтобы в него входили только те детали, которые вам нужны.

Чтобы сделать это немного понятнее, рассмотрим случай, когда коллекция файлов WAR со множеством общих ресурсов (например, JavaScript, файлы конфигурации Spring и т. Д.) Распределяется между ними с использованием метода наложения . Если вы работаете над какой-либо веб-страницей (запущенной в Jetty) и хотите изменить часть оверлейного кода, который хранится в отдельном модуле, то обычно вы ожидаете, что вам придется остановить Jetty, запустить сборку Maven, запустить Jetty снова и Продолжить. Так обстоит дело с Eclipse и практически со всеми другими IDE, с которыми я работал. Не так в IntelliJ. Используя настройки проекта, вы можете определить, какой аспект какого модуля вы хотите включить в фоновую сборку. Следовательно, вы получите процесс, который выглядит безупречно. Вы вносите изменения практически в любой код проекта, и он сразу становится доступным после обновления браузера.

Очень аккуратный и очень быстрый.

Я не мог представить, чтобы кодирование внешнего интерфейса в чем-то вроде YUI поддерживало DWR / SpringMVC без него.

2
ответ дан Gary Rowe 6 January 2012 в 05:17
поделиться

Анализ потока данных : межпроцедурный анализ обратного потока и анализ прямого потока, как описано здесь . Мой опыт основан на Community Edition, которая довольно хорошо анализирует потоки данных. Он потерпел неудачу (отказался что-либо делать) в нескольких случаях, когда код очень сложный.

2
ответ дан 2 revs, 2 users 86% 6 January 2012 в 05:17
поделиться

Прежде всего, я люблю интеллидж. Есть по крайней мере сто особенностей, которые есть в этом затмении. Я лучше говорю о надежности и интеллекте, которые ни одна гипербола не может описать, когда речь заходит о рефакторинге, переименовании, перемещении и других, которые уже упоминались.

НО, есть кое-что, что intellij не позволяет, какое затмение делает. Он не позволяет запускать сразу несколько проектов под одним и тем же vm.

Когда у вас есть отдельные проекты для фронта, середины, ядра, агентов ... и т. Д., Где все они должны взаимодействовать друг с другом, вы не можете быстро изменять и отлаживать одновременно, аааик. Единственный способ справиться с этим в настоящее время - использовать ant-скрипты для развертывания и обновления jar-файлов в зависимых проектах или использовать maven.

Eclipse позволяет отлаживать несколько проектов в одном экземпляре ide vm.

2
ответ дан 2 revs, 2 users 82% 6 January 2012 в 05:17
поделиться

На данный момент, это единственная, которая может иметь вкладки, вырванные в другое окно. Удобно, когда у вас есть больше экранов.

1
ответ дан Scoobie 6 January 2012 в 05:17
поделиться

Недавно я обнаружил, по крайней мере, два преимущества IntelliJ IDEA по сравнению с Eclipse.

Если кто-то пытается использовать форматирование кода в редакторе кода JSP, скриптлеты JSP ломаются. Затмение становится немного сумасшедшим, оно рекламирует случайные фрагменты кода тут и там. ИДЕЯ ведет себя очень хорошо.

Другое дело, скорость развертывания приложения на сервере JBoss. IntelliJ заменяет приложение в папке tmp JBoss, поэтому перераспределение действительно быстрое. Eclipse WTP заменяет приложение в папке развертывания, что, как оказалось, длится гораздо дольше.

1
ответ дан Piotr Kochański 6 January 2012 в 05:17
поделиться

Откройте проект из Maven POM. Просто выберите «Открыть проект ...», перейдите на верхний уровень pom.xml и нажмите Enter. Теперь в NetBeans также есть эта функция.

0
ответ дан rlovtang 6 January 2012 в 05:17
поделиться

Я не помню, возможно ли в Eclipse перенос слов / строк / методов / классов

В Intellij Idea вы используете Ctrl + W

0
ответ дан 2 revs, 2 users 80% 6 January 2012 в 05:17
поделиться

То, что я все время использую в IntelliJ, - это рефакторинг по мере ввода текста. Я переписал классы из распечатки (первоначально написанной в Eclipse), используя обе IDE, и я использовал примерно на 40% меньше нажатий клавиш / кликов мыши, чтобы написать те же классы в IntelliJ, что и Eclipse.

Я бы не хотел использовать Eclipse, пока они не поддерживают столько же рефакторинга с неполными частями кода.

Вот более длинный список функций в IntelliJ 8.0 / 8.1 [ http://www.jetbrains.com/idea/features/index.html]

2
ответ дан 2 revs 6 January 2012 в 05:17
поделиться

Существует ряд функций и рабочих процессов, которые различаются в двух, как это видно во всех ответах. Тем не менее, я думаю, что при принятии решения о том, какую систему использовать, следует также учитывать общее улучшение производительности, которое можно получить с помощью каждого инструмента.

Я большой поклонник Netbeans и Eclipse и использую оба в течение многих лет. Они являются отличными инструментами, и в зависимости от того, что вы делаете, вы можете выбрать один или другой.

Тем не менее, около шести месяцев назад, работая над сложным веб-проектом на Java, включающим большое количество кода JavaScript для интерфейса пользователя HMT5, я был вынужден искать альтернативы Eclipse из-за ошибки автозаполнения js. Я был в таком отчаянии, что подумывал о том, чтобы вернуться к простому текстовому редактору для моего js-кода !!!

Только по счастливой случайности я наткнулся на Intellij Idea (к сожалению, нет времени на поиск инструментов).

Несмотря на то, что требуется некоторое время, чтобы привыкнуть к образу действий Idea, за исключением особых функций, повышение производительности, которое оно предлагает за счет мелких вещей слева и справа, является самым большим активом, на мой взгляд. Это просто работает лучше для меня, и теперь я платный клиент Idea Ultimate. Когда вы привыкнете к этому, очень трудно вернуться к чему-либо еще.

Ничто не может быть лучше, и я большой поклонник открытого кода, но, в конце концов, если вы зарабатываете на жизнь, способность делать вещи быстрее окупается каждый раз.

0
ответ дан CuNimb 6 January 2012 в 05:17
поделиться

Alt + Insert для редактирования текста в режиме столбцов.

-1
ответ дан 2 revs, 2 users 67% 6 January 2012 в 05:17
поделиться

Я не много кодировал с IntellijIdea, но в IntellijIdea вы можете видеть, где начинается блок кода в скобках ( if, try / catch, цикл и т. Д. ) и где заканчивается.

В Eclipse (я кодирую в Eclipse 3.2) вы можете идентифицировать блок только вручную.

-1
ответ дан alepuzio 6 January 2012 в 05:17
поделиться

Есть одна вещь, что IntelliJ делает намного лучше, чем Eclipse, и это пустые карманы!

Я, однако, предпочитаю использовать его, и у него есть одно большое преимущество перед Eclipce в том, что он синхронизируется с файловой системой, для больших проектов и медленных компьютеров (да, в рабочих средах ПК работают намного медленнее, чем наши дома) Eclipse, похоже, борется там, где IntelliJ кажется более быстрым, хотя и с более медленным начальным временем индексации.

Редакция IntelliJ Community, очевидно, делает его бесплатным, но вскоре вы захотите, чтобы этот дополнительный рефакторинг и приятные маленькие вкусности не были включены в редакцию CC.

По моему мнению, это, как правило, лучший пользовательский опыт, но стоит ли это затратам - вопрос, на который каждый разработчик должен ответить сам.

Но давайте будем благодарны, что у нас есть до трех отличных IDE для Java прямо сейчас, и NetBeans постоянно улучшается.

2
ответ дан Shawn Vader 6 January 2012 в 05:17
поделиться

Извините, если это уже освещено, но просто иметь вкладку «изменения» там, где я могу видеть свои локальные изменения, входящие изменения, удаленные изменения - просто то, без чего я не могу жить… В Eclipse я могу » не могу найти такую ​​особенность!

Также просто простая вещь, такая как средний щелчок, который привязывается к «открытому объявлению», является отличным дополнением пользовательского интерфейса - то, что я также не могу увидеть реализованным в Eclipse.

На моем рабочем месте есть только «Затмение», но я серьезно думаю о покупке персональной лицензии на «Идею» ...

0
ответ дан ustad 6 January 2012 в 05:17
поделиться

Одним из хороших моментов, на мой взгляд, является Матрица структуры зависимостей : http://www.jetbrains.com/idea/features/dependency_analysis.html#link0

Хорошее введение в использование и преимущества DSM можно найти на веб-сайте Lattix (самостоятельный продукт): http://www.lattix.com/files/dl/slides/s.php?directory=4tour

4
ответ дан Herrmann 6 January 2012 в 05:17
поделиться

Идея 8.0 имеет прекрасный ctrl + shift + space x 2, который выполняет следующее автозаполнение:

 City city = customer.<ctrl-shift-space twice>

преобразуется в

 City city = customer.getAddress().getCity();

через любой количество уровней геттеров / сеттеров.

45
ответ дан 3 revs, 3 users 90% 6 January 2012 в 05:17
поделиться

Не забудьте "сравнить с буфером обмена".

То, что я все время использую в IntelliJ, и которое не имеет эквивалента в Eclipse.

33
ответ дан Daniel Alexiuc 6 January 2012 в 05:17
поделиться

Мой любимый ярлык в IntelliJ, который не имеет эквивалента в Eclipse (который я нашел), называется «Перейти к символу». CTRL-ALT-SHIFT-N позволяет начать вводить и выводить классы, имена методов, имена переменных и т. д. из всего проекта.

31
ответ дан 2 revs, 2 users 67% 6 January 2012 в 05:17
поделиться

IntelliJ имеет довольно продвинутые проверки кода (сравнимые, но отличающиеся от FindBugs).

Хотя я серьезно скучаю по плагину FindBugs при использовании IntelliJ (интеграция Eclipse / FindBugs довольно крутая).

Здесь - это официальный список CodeInspections, поддерживаемых IntelliJ

РЕДАКТИРОВАТЬ: Наконец, есть findbugs-плагин для IntelliJ. Это все еще немного бета, но комбинация Code Inspections и FindBugs просто великолепна!

24
ответ дан 4 revs, 2 users 93% 6 January 2012 в 05:17
поделиться

Я думаю, что вы можете придерживаться любой из этих IDE. Лучший признак того, чтобы не «беспокоиться о том, чтобы упустить гигантскую выгоду в IDE, которую вы не используете», - это очень длинные споры, которые мы видели между фанатами Eclipse и фанатами IntelliJ. Это хороший признак того, что обе стороны имеют почти одинаковую силу, которая привела к длительному обсуждению.

0
ответ дан Ali Motevallian 6 January 2012 в 05:17
поделиться

Структурный поиск и замена.

Например, найдите что-то вроде:

  System.out.println($string$ + $expr$);

Где $ string $ - это литерал, а $ expr $ - выражение типа my.package.and.Class, а затем заменить на:

  $expr$.inspect($string$);
14
ответ дан Darron 6 January 2012 в 05:17
поделиться

Несколько других вещей:

  • распространять параметры / исключения при изменении сигнатуры метода, очень удобно для обновления методов глубоко внутри стека вызовов
  • Проверка кода SQL в строках, передаваемых как Аргументы к вызовам jdbc (и всему новому пакетному внедрению языка)
  • реализованы в / перезаписаны в значках для интерфейсов & amp; классы (и их методы) и интеллектуальная навигация по реализации (Ctrl + Alt + Click или Ctrl + Alt + B)
  • связь между интерфейсами EJB 2.1 и классами компонентов (включая поддержку рефакторинга); старый, но все еще очень ценный при работе над старыми проектами
3
ответ дан Andrei 6 January 2012 в 05:17
поделиться

Если у вас есть курсор на метод, то CTRL + SHIFT + I отобразит реализацию метода. Если метод является методом interface, то вы можете использовать стрелки вверх и вниз для циклического перебора реализаций:

Map<String, Integer> m = ...
m.contains|Key("Wibble");

Где | находится (например) там, где находится ваш курсор.

25
ответ дан 2 revs, 2 users 91% 6 January 2012 в 05:17
поделиться

Введите переменную. ( Ctrl + Alt + V в Windows, Cmd + Alt + V в OSX)

Допустим, вы вызываете метод, service.listAllPersons() Hit Ctrl + Alt + V и Enter , и вставляется переменная для возвращаемого значения из вызова метода:

List<Person> list = service.listAllPersons();

Сохраняет ввод, и у вас нет чтобы проверить тип возврата метода, который вы вызываете. Особенно полезно при использовании дженериков, например

new ArrayList<String>()

[ввести переменную]

ArrayList<String> stringArrayList = new ArrayList<String>();

(конечно, вы можете легко изменить имя переменной, прежде чем нажать Enter )

9
ответ дан 3 revs, 2 users 79% 6 January 2012 в 05:17
поделиться

Есть только одна причина, по которой я использую intellij, а не eclipse: Удобство использования

Будь то отладка, рефакторинг, автозаполнение. Intellij гораздо проще использовать с последовательными привязками клавиш. опции доступны там, где вы их ищите и т. д. Что касается функций, то для intellij будет сложно догнать Eclipse, так как последний имеет гораздо больше доступных плагинов, чем intellij, и его легко расширить.

81
ответ дан 2 revs, 2 users 80% 6 January 2012 в 05:17
поделиться

Для меня это поддержка IDEA maven, особенно в 9-й версии. Синхронизация проекта на лету с моделью «на лету» просто фантастическая и делает разработку приятной.

7
ответ дан mdma 6 January 2012 в 05:17
поделиться

VIM Эмулятор. Этот плагин обеспечивает почти полную эмуляцию vi / vim / gvim при редактировании файлов в IDEA. Поддерживаются следующие функции:

  • Клавиши управления движением
  • Удаление / изменение
  • Команды режима вставки
  • Метки
  • Регистры
  • VIM отменить / повторить
  • Команды визуального режима
  • Некоторые команды Ex
  • Некоторые: установить опции
  • Полные регулярные выражения VIM для поиска и поиск / замена
  • Макросы
  • Диаграммы
  • История командной строки
  • История поиска
  • Списки переходов
  • Помощь VIM

некоторые комментарии об этом плагине от http://plugins.jetbrains.net/plugin/?id=164

Я не вижу когда-либо возвращаясь к любому другому Ide из-за этого плагина .. Лучший из обоих миров ... Потрясающе !. это то, чего мне не хватало во всех IDE.
4
ответ дан Maciek Kreft 6 January 2012 в 05:17
поделиться

Одна вещь, которую я регулярно использую, это установка точки останова, но затем контроль за тем, что она делает. (На моей последней работе большинство остальных использовали Eclipse ... Я помню, как был удивлен, что никто не мог найти, как это сделать в Eclipse.)

Например, точка останова может не останавливаться, а просто записать сообщение в консоль. Это означает, что мне не нужно засорять мой код «System.out.println (...)», а затем перекомпилировать.

15
ответ дан jgindin 6 January 2012 в 05:17
поделиться

Гораздо больше, намного больше рефакторингов.

16
ответ дан Tom 6 January 2012 в 05:17
поделиться