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

366

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

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

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

  • 5
    stackoverflow.com/questions/461255/...
  • 1
    Я перешел из Eclipse в NetBeans в IntelliJ rubyMine, и каждый из них был «на шаг впереди» по сравнению с предыдущим. Я не могу понять, что конкретно (следовательно, это не ответ), так как это было какое-то время, но самый большой скачок был к rubyMine, который был просто более «интегрированным» и, казалось, имел больше функциональности и представлял вещи в более простой форме. использовать способ. Похоже, что он справлялся с проблемами самоцветов, зависимостями и тому подобным лучше, чем другие.
Показать ещё 3 комментария
Теги:
intellij-idea
ide

41 ответ

176
Лучший ответ

CTRL-click работает в любом месте

CTRL-щелчок, который приводит вас к тому, что объект щелчка определяется везде, - не только в Java-классах и переменных в коде Java, но и в конфигурации Spring (вы можете щелкнуть по имени класса или свойству или bean имя), в Hibernate (вы можете щелкнуть имя или класс свойства или включить ресурс), вы можете перемещаться в один клик из класса Java, где он используется как Spring или Hibernate bean; нажатие на включенное JSP или JSTL-тег также работает, ctrl-click на переменной JavaScript или функции приводит вас к тому месту, где оно определено, или отображает меню, если есть несколько мест, включая другие .js файлы и JS-код в HTML или JSP файлы.

Автозаполнение для многих языков

Hibernate

Автозаполнение в выражениях HSQL в конфигурации Hibernate (включая имена классов, свойств и столбцов базы данных) в конфигурации Spring

<property name="propName" ref="<hit CTRL-SPACE>"

и он покажет вам список тех beans, которые вы можете ввести в это свойство.

Java

Очень умный автозаполнение в Java-коде:

interface Person {
    String getName();
    String getAddress();
    int getAge();
}
//---
Person p;
String name = p.<CTRL-SHIFT-SPACE>

и он показывает вам ТОЛЬКО getName(), getAddress() и toString() (только они совместимы по типу), а getName() является первым в списке, потому что он имеет более релевантное имя. Последняя версия 8, которая все еще находится в EAP, обладает еще более умным автозаполнением.

interface Country{
}
interface Address {
    String getStreetAddress();
    String getZipCode();
    Country getCountry();
}
interface Person {
    String getName();
    Address getAddress();
    int getAge();
}
//--- 
Person p;
Country c = p.<CTRL-SHIFT-SPACE>

и он будет автоматически автозаполнять его

Country c = p.getAddress().getCountry();

Javascript

Смарт-автозаполнение в JavaScript.

function Person(name,address) {
    this.getName = function() { return name };
    this.getAddress = function() { return address };
}

Person.prototype.hello = function() {
    return "I'm " + this.getName() + " from " + this.get<CTRL-SPACE>;
}

и он показывает ТОЛЬКО getName() и getAddress(), независимо от того, как могут получить * методы, которые у вас есть в других объектах JS в вашем проекте, и ctrl-click на this.getName() приводит вас туда, где это определено, даже если в вашем проекте есть другие функции getName().

HTML

Я упомянул автозаполнение и ctrl-щелчок в пути к файлам, например < script src= ", < img src=" " и т.д.

Автозаполнение атрибутов тега HTML. Автозаполнение атрибута стиля тегов HTML, как имен атрибутов, так и значений. Автозаполнение в атрибутах класса.
Type < div class= "< CTRL-SPACE > , и он отобразит список классов CSS, определенных в вашем проекте. Выберите один из них, нажмите Ctrl-клик по нему, и вы будете перенаправлены туда, где он определен.

Простой собственный язык

В последней версии есть языковая инъекция, поэтому вы можете объявить, что пользовательский тег JSTL обычно содержит JavaScript, и он будет выделять JavaScript внутри него.

<ui:obfuscateJavaScript>function something(){...}</ui:obfuscateJavaScript>

Индексированный поиск по всему проекту.

Вы можете использовать Поиск использования любого Java-класса или метода, и он найдет, где он используется, включая не только классы Java, но и Hibernate, Spring, JSP и другие места. Переименовать метод рефакторинга переименовывает метод не только в Java-классах, но и в любом месте, включая комментарии (он не может быть уверен, что строка в комментариях действительно является именем метода, поэтому он будет запрашивать). И он найдет только ваш метод, даже если есть методы другого класса с тем же именем. Хорошая интеграция управления версиями (поддерживает ли SVN списки изменений? IDEA поддерживает их для каждого источника управления), возможность создания патча с вашими изменениями, чтобы вы могли отправлять свои изменения другому члену команды, не совершая их.

Улучшенный отладчик

Когда я смотрю на HashMap в окне просмотра отладчика, я вижу логический вид - ключи и значения, в прошлый раз, когда я делал это в Eclipse, он показывал записи с хэшем и следующими полями - я действительно не отлаживаю HashMap, я просто хочу посмотреть его содержимое.

Spring и проверка конфигурации Hibernate

Он проверяет правильность конфигурации Spring и Hibernate, когда вы его редактируете, поэтому мне не нужно перезапускать сервер, чтобы знать, что я назвал неправильное имя или добавлен параметр конструктора, поэтому мой Spring cfg недействителен.

В прошлый раз, когда я попытался, я не смог запустить Eclipse в Windows XP x64.

и он предложит вам person.name или person.address. Ctrl-click на person.name, и он будет перемещаться к вам методом getName() класса Person.

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

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

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

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

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

  • 26
    Два примера об автозаполнении Java-кода одинаково работают в Eclipse. Может кто-то с большим количеством представителей удалить только примеры Java, пожалуйста?
  • 9
    Большинство ваших примеров доступны в Eclipse, напрямую или через сторонние плагины. Я не знаю никого, кто использовал бы внешний инструмент для слияния SVN в Eclipse. Для редакторов Spring / Hibernate / Javascript (и автозаполнения) существуют сторонние плагины. Что касается регулярных выражений и JSP EL, вы победили меня :)
Показать ещё 15 комментариев
77

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

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

  • 10
    Это умно и чертовски быстро. Это добавляет много полезных функций. Переход к подклассу или реализации класса, поиск в пути, поиск использования и т. Д. Происходит очень быстро. Автозаполнение происходит внутри строки, просто вкладка вставит его. Автозаполнение также является умным, просто не чистые предложения, но IDE думает об именах и т.д. для вас.
  • 0
    Есть несколько причин использовать IntelliJ. Юзабилити даже не в начале списка. В IntelliJ больше возможностей, чем в Eclipse. Всего IntelliJ имеет меньше плагинов, но больше «качественных» плагинов. Таким образом, этот ответ, несмотря на положительные отзывы, неверен.
Показать ещё 1 комментарий
56

Вероятно, это не вопрос того, что может/не может быть выполнено, но как.

Например, у обоих есть редактор, окруженный панелями док-станции для проекта, classpath, output, structure и т.д. Но в Idea, когда я начинаю вводить все эти коллапсы, автоматически позволяю мне сосредоточиться на коде, который сам; В eclipse все эти панели остаются открытыми, оставляя область редактора очень уменьшенной, около 1/5 общей видимой области. Поэтому я должен захватить мышь и щелкнуть, чтобы свести к минимуму в этих панелях. Выполнение этого в течение всего дня - очень неприятный опыт в затмении.

То же самое происходит с окном вывода представления. В программе "Идея" программа выводит окно/панель вывода, чтобы увидеть выход программы, даже если она была сведена к минимуму. В eclipse мне нужно снова схватить мою мышь и найти вкладку вывода и щелкнуть ее, чтобы просмотреть выход моей программы, потому что выходное окно/панель - это просто еще один, как и все остальные окна, но в Idea он обрабатывается в особым образом: "Если пользователь хочет запустить свою программу, очень вероятно, что он хочет видеть выход этой программы!" Кажется настолько естественным, когда я пишу его, но eclipse терпит неудачу в этой концепции базового интерфейса пользователя.

Наверное, есть ярлык для этого в eclipse (автовыполнение окна вывода при редактировании и автошоу при запуске программы), но, как и некоторые другие десятки функций, на ярлык нужно охотиться на форумах, онлайн-справку и т.д., в то время как в Idea немного бит более "естественный".

Это можно повторить почти для всех функций, имеющих как автозаполнение, перенос слов, так и быстрый просмотр документации, все. Я думаю, что опыт пользователя намного приятнее в Idea, чем в eclipse. Затем появляется девиз "Развивайте с удовольствием"

Eclipse обрабатывает более быстрые проекты (+300 банок и +4000 классов), и я думаю, что IntelliJ Idea 8 работает над этим.

Все это, конечно, субъективно. Как мы можем измерить работу пользователя?

  • 18
    в eclipse вы можете нажать control-m, чтобы мин. / макс. окно редактирования, или дважды щелкнуть его вкладку редактора - это очень помогает
  • 0
    Вау ... большое спасибо. Было бы очень полезно, если бы у Eclipse был способ, которым я знаю это (кроме чтения шпаргалки горячих клавиш) Большое спасибо. Есть ли способ изменить окно вывода?
Показать ещё 9 комментариев
47

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

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

разрешает

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

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

  • 27
    довольно круто, хотя что-то больше, чем два уровня, вполне пахнет кодом ...;)
  • 33
    Господи, мы можем перестать использовать эту фразу?
Показать ещё 1 комментарий
34

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

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

  • 6
    Также история буфера обмена.
  • 3
    Эта функция может быть добавлена к затмению в виде плагина под названием AnyEditTools (найден на рынке)
Показать ещё 2 комментария
30

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

  • 10
    Ctrl-Shift-G в затмении
  • 0
    ctrl-shift-G - это не то, что описал Пол .. больше похоже на "ctrl + O", но для всех классов, методов и переменных в проекте
28

Я попытался переключиться на IntelliJ из-за новой Android Studio. Но сейчас я очень разочарован. Я использую Eclipse с плагином Code Recommendedanders. Вот простой пример, почему Eclipse настолько замечателен:

Я хочу создать новый SimpleTimeZone. SimpleTimeZone не имеет конструктора с нулевыми аргументами.

Ctrl + Space в Eclipse

Изображение 6695

Ctrl + Space в IntelliJ

Изображение 6696

В IntelliJ я не получаю никаких сведений о конструкторах SimpleTimeZone.

После Enter в Eclipse

Изображение 6697

Я получаю ранее выбранный конструктор, заполненный предопределенными именами переменных. И я вижу тип каждого аргумента. С помощью Code Recommendanders Eclipse угадывает правильный конструктор по ранее определенным типам переменных в текущей области и заполняет конструктор этими vars.

После Enter в IntelliJ ничего не происходит. Я получаю пустой конструктор. Я должен нажать Ctrl + P, чтобы увидеть ожидаемые аргументы.

Изображение 6698

24

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

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

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

  • 4
    На самом деле в Eclipse (по крайней мере, в той версии, которую я использую), когда вы наводите курсор на имя метода и нажимаете CTRL + T, вы получаете все дерево иерархии, от самого верхнего интерфейса до конечных реализаций, и можете перейти любому из них.
  • 2
    В Eclipse вы также можете нажать Ctrl + клик по имени метода, чтобы перейти к определению / реализации метода (в зависимости от контекста).
Показать ещё 2 комментария
23

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

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

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

EDIT: Наконец, для IntelliJ есть findbugs-plugin. Это все еще немного бета, но комбинация Code Inspections и FindBugs просто потрясающая!

  • 0
    да, findbugs - это один из немногих статических анализаторов кода, который действительно находит практические ошибки честности и добродетели. :)
  • 0
    У вас есть конкретный пример проверки кода? Какие вещи он может обнаружить?
Показать ещё 2 комментария
16

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

15

Есть много вещей, которые идея решает гораздо проще, или нет эквивалента:

  • Действия автозаполнения. Выполняя ctrl+shift+a, вы можете вызвать любое действие с клавиатуры, не помня его комбинацию клавиш... Подумайте о gnome-do или запустите в Windows, и у вас есть идея! Кроме того, эта функция поддерживает аббревиатуры CamelCasing;)

  • Полка: позволяет вам легко разделить фрагменты кода, а затем просмотреть их через средство просмотра различий.

  • Локальная история: она намного лучше управляется и проще.

  • Аннотации и история SVN: проще просмотреть, а также вы можете легко просмотреть историю только для такой части целого исходного файла.

  • Автозаполнение повсюду, например, окна выражения выражения и состояния точки останова.

  • Интеграция Maven... намного, намного проще и хорошо интегрирована.

  • Рефакторы гораздо ближе к руке, такие как вставка циклов, обертывание/литье, переименование и добавление переменных.

  • Найти много мощных и хорошо организованных. Даже в больших проектах

  • Значительно стабильная работа с несколькими ветвями большого проекта в одно и то же время (как бывшее исправление 1,5 ГБ по источникам веток и необходимость работать в них одновременно, идея показала его прочные возможности)

  • Более чистый и простой интерфейс...

  • И, проще использовать только с клавиатурой, позволяя разделить необходимость использования мыши для множества простых таков, экономя ваше время и давая вам больше внимания на код... где это важно!

И теперь, будучи open source, база пользователей Idea будет экспоненциально расти.

  • 2
    Автозаполнение действий = быстрый доступ в затмении; Я не понимаю, как местная история может быть легче, чем в затмении ...
  • 0
    Как указал Скотт, это Ctrl + 3. Помощник по содержимому также доступен при оценке выражений и установке условных точек останова. Я не уверен, насколько ближе под рукой упомянутые рефакторинги, чем то, что предлагают Ctrl + 1 и Ctrl + 2. Большая часть всего остального звучит субъективно.
15

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

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

  • 2
    Вы можете сделать это с условными контрольными точками в затмении, но это немного нахально .eg. правда
  • 0
    Я думаю, что IntelliJ позволяет вам устанавливать более сложные счетчики посещений, не так ли?
Показать ещё 1 комментарий
14

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

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

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

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

  $expr$.inspect($string$);
  • 1
    На самом деле вы можете искать тип приведений / () - оператор / в вашем коде, что практически невозможно при обычном текстовом поиске
13

Мое время может немного отличаться от этой темы, но я просто должен был ответить.

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

Однако! Я только начал использовать IntelliJ, и если вы не видели или не использовали списки изменений - вам не хватает программирования на небесах.

Возможность отслеживать мои измененные файлы (на моей ветке развития ala clearcase) была тем, что я искал в плагине для eclipse. Intellij отслеживает все ваши изменения для одной фиксации, очень просто. Вы можете изолировать измененные файлы с помощью настраиваемых списков. Я использую это для файлов конфигурации, которые должны быть уникальными локально, но постоянно помечены, когда я синхронизирую или сравниваю с репозиторией - перечисляя их в списке изменений, я могу их контролировать, но аккуратно убирать их, чтобы я мог сосредоточиться на реальных дополнениях Я делаю.

Также есть плагин Commit Log, который выводит текст всех изменений для тех SCCS, которые не интегрированы с вашим программным обеспечением отслеживания ошибок. Вставка журнала в историю работы с билетами фиксирует файлы, их версию, дату/время и ветку/теги. Это круто, как черт.

Все это может поддерживаться через плагины (или будущие улучшения) в eclipse, я ставлю; Тем не менее, Intellij делает это ветерок.

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

  • 0
    Мне действительно нравится функция списков изменений. Это похоже на независимый от VCS набор патчей / полок, с которыми вы можете работать независимо, и которые могут быть связаны с ними, также могут быть связаны с вашей системой отслеживания проблем. У вас есть локальная история (например, мини VCS), отслеживающая ваши изменения, когда вы работаете почти на уровне детализации линии, так что вы можете вернуться почти к любому моменту времени, если вам нужно. Также при переключении задач все IDEA запоминают состояние IDE для нового задания и восстанавливают открытые файлы, положения окон и т. Д.
  • 0
    Changelists на самом деле особенность SVN. IntelliJ позволяет вам видеть и управлять ими там, где плагины Eclipse SVN этого не делают.
12

Отладчик IntelliJ имеет очень удобную функцию под названием "Evaluate Expression", которая намного лучше, чем кулон затмений. Он имеет полное завершение кода, и я считаю, что он вообще "более полезен".

  • 8
    Eclipse также имеет оценщик выражений, который предлагает завершение кода. Перейти к окну -> Показать представление -> Отладка -> Показать Когда остановлено на точке останова в отладчике, вы можете оценить произвольные выражения в этом представлении отображения.
  • 1
    Это не так интуитивно, как IntelliJ, хотя ...
11

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

Всякий раз, когда мне приходилось использовать или смотреть, как кто-то использует, Eclipse кажется, что они могут делать большинство вещей, которые я могу сделать в IntelliJ, но это занимает больше времени, и это clunkier.

9

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

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

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

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

new ArrayList<String>()

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

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

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

  • 13
    Это Ctrl + 2 L в Eclipse.
  • 2
    Хорошо, я не знал, и ни один из пользователей Eclipse, о котором я спрашивал. Эта функция была частью Eclipse в течение длительного времени?
Показать ещё 2 комментария
8

IntelliJ имеет поддержку intellisense и рефакторинга из кода в документы jspx.

  • 0
    Не могли бы вы уточнить, что вы подразумеваете под intellisense? Eclipse также имеет автозаполнение, но вы имеете в виду что-то еще?
  • 0
    Eclipse не имеет автозаполнения в документах jspx AFAIK. В обычном JSP да, JSPX нет.
Показать ещё 4 комментария
7

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

6

Intellij имеет гораздо более совершенный SVN-модуль, чем Subversive или Subclipse, и он работает! Количество времени, которое мы потратили впустую на слияние исходных файлов с использованием Eclipse, не обдумывает. Это не проблема с IntelliJ, потому что плагин помогает вам гораздо больше.

Также плагин Subclipse ненадежный - мы регулярно имеем экземпляры, в которых плагин не считает, что какой-либо код был проверен на SVN другими разработчиками, но есть - сервер CI обработал их!

  • 0
    Точно, поддержка svn превосходна в идее, в то время как subclipse / subversive ошибочны, неуклюжи и не очень надежны; то же самое касается git, на самом деле я не помню разумной интеграции git для eclipse, и intelliJ справляется с этим очень хорошо
  • 0
    Лично я думаю, что вы должны выполнять весь контроль версий в командной строке, даже если ваша IDE может это сделать. Когда вы сделаете это в командной строке, тогда вы узнаете, как сделать это позже, что действительно может ускорить вашу разработку. Иногда мои коллеги просят меня о помощи с subclipse или git eclipse plugin, я просто говорю им прекратить использовать его и сделать это в командной строке.
4

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

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

4

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

  •           
  • Кнопки движения          
  • Удаление/изменение          
  • Вставить команды режима          
  • Marks          
  • Регистры          
  • VIM undo/redo          
  • Команды визуального режима          
  • Некоторые команды Ex          
  • Некоторые: установка параметров          
  • Регулярные выражения полного VIM для поиска и поиска/замены          
  • Макросы          
  • Diagraphs          
  • История командной строки          
  • История поиска          
  • Jumplists          
  • Справка VIM      

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

                                                                         Я не вижу, чтобы когда-либо возвращался к другим идеям из-за этого плагина.                                                                                            Лучшее из обоих миров... Удивительный!.                                                                                             что я отсутствовал во всех IDE.
  • 0
    Я согласен, я не смог бы жить без моего плагина IdeaVim, однако, если честно, есть плагин Vim для Eclipse, метко названный VimPlugin ( vimplugin.org )
  • 3
    Vwrapper - еще один плагин Vim Eclipse. И это работает даже лучше, чем плагин Idea Vim (повторные ключи работают). Vwrapper не обрабатывает поиск и замену из командной строки, хотя (хотя поиск работает отлично) и не позволяет определять макросы в интерактивном режиме. Договорились, что поддержка Vim необходима в IDE. Не использовал бы Eclipse или Idea без него!
Показать ещё 1 комментарий
3

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

  • распространять параметры/исключения, когда изменение подписи метода, очень удобен для глубокого обновления методов внутри стека вызовов
  • Проверка кода SQL в строках, переданных в качестве аргументов для вызовов jdbc (и весь новый комплект язык).
  • реализовано/перезаписано в значках для интерфейсов и классов (и их методов) и умная реализация навигации (Ctrl + Alt + Click или Ctrl + Alt + B)
  • связь между интерфейсами EJB 2.1 и классами bean (включая поддержку рефакторинга); старый один, но все же чрезвычайно ценный при работе над более старыми проектами
2

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

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

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

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

2

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

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

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

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

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

  • 3
    IntelliJ Ultimate Edition действительно не является бесплатным, но как разработчик я использую свою среду разработки примерно от 8 до 10 часов в день. Так что я не вижу его разумную цену как недостаток !!
2

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

2

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

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

  • 0
    Затмение с открытым исходным кодом. Никто не платит за ответы на вопросы или исправление ошибок. Купите коммерческую интегрированную среду разработки на основе Eclipse, например MyEclipse, и получите поддержку за свои деньги. Быстрая статистика: я сообщил JetBrains 56 ошибок, 23 из них закрыты; из 65 сообщений об Eclipse 33 закрыты. Единственное отличие состоит в том, что JetBrains исправляет ошибки немного быстрее, чем Eclipse.
2

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

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

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

2

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

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

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

Я не мог себе представить кодирование переднего конца в чем-то вроде YUI, поддерживающего DWR/SpringMVC без него.

2

Две вещи, которые IntelliJ делает для этого Eclipse, не очень ценны для меня:

Разделители методов: эти слабые серые линии между методами делают код более читаемым

Сглаживание текста: делает код очень приятным в среде IDE

  • 2
    Я обнаружил, что сглаживание в IntelliJ намного хуже, чем в Eclipse. Это было несколько версий IntelliJ назад, однако. Это было улучшено?
  • 0
    Я использую пропорциональный шрифт Verdana, который, на мой взгляд, выглядит лучше, чем сглаживание.
1

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

  • 6
    А? Вы можете перетащить любую вкладку затмения в свое собственное окно.
1

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

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

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

  • 0
    Вы должны сообщить об ошибке форматирования на bugs.eclipse.org .
0

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

0

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

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

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

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

Хотя для того, чтобы привыкнуть к идеям "Идея", нужно отвлечься от некоторых особенностей, увеличение производительности, которое он предлагает от мелких вещей слева и справа, является самым большим активом, на мой взгляд. Он просто работает лучше для меня, и теперь я являюсь подписчивающим клиентом Idea Ultimate. Как только вы привыкнете к этому, его очень сложно вернуться к чему-либо еще.

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

0

В IntelliJ можно перейти через историю последних мест, отредактированных с помощью "Последнее изменение местоположения". Eclipse имеет аналогичную функцию, но Eclipse возвращается только на один уровень редактирования.

Наличие истории, а не только одного уровня, который предлагает Eclipse, является отличной функцией производительности: он действует как форма автоматической закладки, так как вы часто хотите вернуться в те места, где вы делали изменения. Я использую эту способность несколько раз в день и чувствую боль от ее отсутствия, когда меня просят использовать Eclipse для чего-то.

  • 0
    Это больше похоже на ошибку, а не на преднамеренное ограничение.
  • 0
    Насколько я помню, я использовал Alt + Left / Alt + Right в Eclipse для перемещения назад / вперед между изменениями / представлениями, и у него не было ограничений по глубине.
0

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

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

На моем рабочем месте есть только Eclipse, но я серьезно подумываю о покупке личной лицензии Idea....

  • 3
    этот первый абзац звучит так же, как представление «Team Synchronize» в Eclipse?
  • 0
    щелчок по нажатию клавиши Eclipse (или F3) приводит к объявлению
0

Откройте проект с POM Maven. Просто выберите "Открыть проект...", перейдите на свой верхний уровень pom.xml и нажмите Enter:) NetBeans теперь также имеет эту функцию.

  • 0
    Для Eclipse необходим плагин для этой функции. m2eclipse.sonatype.org
0

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

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

  • 5
    что вы подразумеваете под "вручную"? В Eclipse вы действительно должны поместить курсор на {(или}), чтобы узнать, где находится} (или {). Еще одна интересная вещь - двойной щелчок сразу после {блока. Он автоматически выберет весь блок {...}.
  • 0
    В Eclipse, если у вас очень длинный блок (я вижу блок на 100-200 строк), вы должны использовать мышь, чтобы хорошо видеть блок. IntellijIdea печатает красную линию на левой стороне (по крайней мере, я помню это). Я думаю, что это более удобно с длинным блоком.
Показать ещё 1 комментарий
0

Я не помню, если в Eclipse

возможно перенос слов/строк/методов/классов.

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

  • 5
    Ctrl + W на самом деле расширить выделение. В Eclipse он связан с Shift + Alt + Up (Shift + Alt + Down уменьшает выбор.)
-2

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

  • 3
    Eclipse имеет это - Alt-Shift-A
-3

Показать панель навигации ALT-Home.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню