Можливі речі в IntelliJ, які неможливі в Eclipse?


365

Я чув від людей, які переключились так чи інакше і які клянуться тим чи іншим.

Будучи величезним шанувальником Eclipse, але не маючи часу спробувати IntelliJ, мені цікаво почути від користувачів IntelliJ, які є "колишніми екліпсіанцями", якісь конкретні речі, які ви можете зробити з IntelliJ, які не можете робити з Eclipse.

Примітка . Це не суб'єктивне питання і зовсім не означає перетворити на святу війну ІДЕ. Будь ласка, скажіть будь-які відповіді з вогнем .



1
Я пішов від Eclipse до Netbeans до IntelliJ rubyMine, і кожен з них був «кроком вгору» від попереднього. Я не можу побачити, що конкретно (отже, це не відповідь), оскільки це було певний час, але найбільшим стрибком став rubyMine, який був просто більш "інтегрований" і, здавалося, має більше функціоналу і представляє речі легше використовувати спосіб. Також здавалося, що краще вирішувати проблеми з дорогоцінними каменями, залежність тощо.
даремний

Я хочу перейти з IntelliJ на Eclipse (через розвиток андроїда), тому питання та відповіді цього типу дуже корисні.
хром

8
@chrome Android тепер переключається іншим способом: developer.android.com/sdk/installing/studio.html
Daniel Alexiuc

1
У мене є стільки таких публікацій, скільки я можу, і всі відповіді вказують на речі, які насправді можна зробити затемненням, іноді простіше ІМХО. Я хочу відчути, що я отримав свою вартість з Intellij, але єдиною причиною, яку я придбав, було автозаповнення Javascript. Я міг щойно придбати веб-шторм за дешевше, якщо це все, що я отримую. Можливо, існує плагін eclipse, який теж робить те ж саме. Відверто кажучи, я вважаю, що затемнення є більш послідовним і мені не вистачає функції Перспективи.
дрес

Відповіді:


185

CTRL-клік працює в будь-якому місці

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

Автозаповнення для багатьох мов

Зимує

Автозаповнення у виразах HSQL, у конфігурації Hibernate (включаючи назви стовпців класу, властивості та БД), у конфігурації Spring

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

і він покаже вам список тих бобів, які ви можете ввести у цю властивість.

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-клацніть на this.getName () приведе вас до місця, де це визначено, навіть якщо є деякі інші функції getName () у вашому проекті.

HTML

Чи згадував я автозаповнення та натискання клавіш ctrl у шляхах до файлів, таких як <script src = "", <img src = "" тощо?

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

Легке висвітлення власної мови

Остання версія має інжекцію мови, тому ви можете заявити, що звичайний тег JSTL зазвичай містить JavaScript, і він виділить JavaScript всередині нього.

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

Індексований пошук по всьому проекту.

Ви можете використовувати Find Usage будь-якого класу або методу Java, і він знайде, де він використовується, включаючи не тільки класи Java, але й Hibernate, Spring, JSP та інші місця. Метод перейменування рефакторинг перейменовує метод не лише в класах Java, але й у будь-якому місці, включаючи коментарі (не може бути впевненим, чи рядок у коментарях справді назва методу, тому він запитає). І він знайде лише ваш метод, навіть якщо є методи іншого класу з такою ж назвою. Хороша інтеграція контролю джерела (чи підтримує SVN список змін? IDEA підтримує їх для кожного контролю джерела), можливість створити виправлення зі своїми змінами, щоб ви могли надсилати свої зміни іншому члену команди, не вчиняючи їх.

Покращений налагоджувач

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

Перевірка конфігурації весни та сплячки

Під час редагування він підтверджує правильність конфігурації Spring and Hibernate, тому мені не потрібно перезавантажувати сервер, щоб знати, що я неправильно написав ім’я класу чи додав параметр конструктора, щоб мій cfg Spring був недійсним.

Востаннє, коли я спробував, я не міг запустити Eclipse на Windows XP x64.

і він запропонує вам назву person.name або person.address . Ctrl клацніть на person.name і переведе вас в GetName () метод Person класу.

Введіть Pattern.compile("");клавішу \\ там, натисніть CTRL-SPACE і перегляньте корисну підказку про те, що ви можете ввести у звичайний вираз. Тут ви також можете використовувати ін'єкцію мови - визначте свій власний метод, який бере параметр рядка, заявіть у діалоговому вікні параметрів IntelliLang, що ваш параметр є регулярним виразом - і він також дасть вам автозаповнення. Потрібно сказати, що він виділяє неправильні регулярні вирази.

Інші особливості

Є кілька функцій, які я не впевнений, є у Eclipse чи ні. Але принаймні кожен член нашої команди, який використовує Eclipse, також використовує якийсь інструмент об'єднання для об'єднання локальних змін зі змінами управління джерелами, як правило, WinMerge. Мені це ніколи не потрібно - злиття в IDEA мені достатньо. За 3 кліки я бачу список версій файлів у контролі джерела, ще на 3 кліки я можу порівняти попередні версії, попередні та поточні та, можливо, об'єднати.

Це дозволяє вказати, що мені потрібні всі .jars всередині WEB-INF\libпапки, не вибираючи кожен файл окремо, тому коли хтось вводить новий .jar у цю папку, він підбирає його автоматично.

Згаданий вище - це, мабуть, 10% того, що він робить. Я не використовую Maven, Flex, Swing, EJB та багато інших речей, тому не можу сказати, як це їм допомагає. Але це робить.


26
Два приклади про автоматичне заповнення коду Java працюють однаково в затемненні. Чи може хтось із більшою кількістю представників видалити лише приклади Java?
Крейг П. Мотлін

9
Більшість ваших прикладів доступні в Eclipse, безпосередньо або через додатки сторонніх розробників. Я не знаю нікого, хто використовує зовнішній інструмент для злиття svn в Eclipse. Для редакторів весна / сплячка / javascript (і автозаповнення) є додатки сторонніх розробників. Що стосується реджексу та jsp EL, то ти побив мене :)
Yoni

1
Плагін Jboss Tools додає автозаповнення виразів Hibernate та JSF.
Дамо

4
Для перегляду налагодження затемнення існує можливість відображення вмісту колекцій, а не деталей про реалізацію. Для списків і наборів він відображатиме їх вміст. Для карт відображатиметься список пар ключових значень. Також можна налаштувати спеціальні дисплеї.
відмовитись

1
Eclipse 3.7 (Indigo), також автоматично завершує імена класів у конфігурації Spring.
stivlo

81

Є лише одна причина, по якій я використовую intellij, а не затемнення: юзабіліті

Будь то налагодження, рефакторинг, автоматичне завершення. Intellij набагато простіше у використанні з послідовними прив'язками клавіш, доступними параметрами, де ви їх шукаєте тощо. останній має набагато більше плагінів, які інтелігують, і легко розширюється.


10
Це розумно, і чорт швидко. Це доповнює багато функціональних можливостей. Перехід до підкласу або класу впровадження, пошук-пошук, пошук звичок тощо відбувається так швидко. Автозавершення відбувається вбудованим, просто вкладка буде вставляти його. Автоматичне завершення також розумне, просто не чисті пропозиції, але IDE думає про імена тощо.
Равіндранат Акіла

Існує більше ніж одна причина використання IntelliJ. Юзабіліті навіть не вгорі списку. У IntelliJ більше функцій, ніж у Eclipse. IntelliJ має менше плагінів, але більше «якісних» плагінів. Отже, ця відповідь, незважаючи на підсумки голосування, помилкова.
Програмний інженер

2
@EngineerDollery Я б не сказав , що це «неправильно», так як Аміт сказав : «Існує тільки одна причина , я використовувати IntelliJ і не затьмарити», а не "Там тільки одна причина , щоб використовувати IntelliJ і не затьмарити».
Макс Нанасі

54

Напевно, справа не в тому, що можна / чого не можна зробити, а в тому, як .

Наприклад, у обох є редактор, оточений док-панелями для проекту, classpath, output, структура тощо. Але в ідеї, коли я починаю автоматично вводити всі ці колапси, дозвольте зосередитись на коді, який я самостійно; У затемненні всі ці панелі залишаються відкритими, залишаючи область мого редактора дуже скороченою, приблизно 1/5 загальної площі видимості. Тому мені потрібно схопити мишу та натиснути для мінімізації на цих панелях. Робити це цілий день - дуже засмучує досвід затемнення.

З вікном виводу перегляду трапляється навпаки. У Idea запуск програми приносить вікно / панель виводу, щоб побачити вихід програми, навіть якщо вона, безумовно, була мінімізована. У затемненні мені потрібно знову схопити мишу і шукати вкладку виводу та клацнути її, щоб переглянути вихід програми, тому що вікно / панель виводу є ще одним, як і всі інші вікна, але в Idea це розглядається в особливий спосіб: "Якщо користувач хоче запустити свою програму, дуже ймовірно, він хоче побачити вихід цієї програми!" Здається, це так природно, коли я це пишу, але затемнення в цій базовій концепції інтерфейсу користувача не вдається.

Ймовірно, для цього існує ярлик у затемненні (автоматичне виведення вікна під час редагування та автоматичне показування його під час запуску програми), але, як і деякі інші десятки функцій, цей ярлик потрібно шукати на форумах, довідці в Інтернеті тощо, тоді як в Idea є трохи більше " природний ".

Це можна повторити майже за всіма функціями, які є, автозаповнення, перенесення слів, швидкий перегляд документації, все. Я думаю, що користувальницьке враження в Ідеї набагато приємніше, ніж у затемненні. Тоді справджується гасло «Розвивай із задоволенням

Eclipse займається швидшими масштабними проектами (+300 банок і +4000 класів), і я думаю, що над цим працює IntelliJ Idea 8.

Все це, звичайно, суб’єктивно. Як можна виміряти досвід користувача?


18
у затемненні ви можете натиснути клавішу control-m, щоб мінімізувати / максимально змінити вікно редагування, або двічі клацнути на вкладці редактора - це дуже допомагає
Скотт Стенчфілд

Нічого ... дякую Було б дуже корисно, якби затемнення було таким, як я це знаю (крім читання шпаргалки гарячих клавіш) Спасибі велике. Чи є спосіб змінити вікно виводу?
OscarRyz

ALT-SHIFT-Q відкриває вікно Show View ... C призначено для консолі ALT-SHIFT-Q, C - це ярлик для переходу до консолі.
Instantsoup

7
Ctrl + Shift + L показує список гарячих клавіш, доступних у поточному контексті.
Dan Berindei

3
Двічі клацніть на заголовку підвікна - БУДЬ-яке під-вікно - і ваше під-вікно виводиться на весь екран. Зробіть це ще раз для відновлення. Мінімізуйте панель за допомогою консолі, і тоді, коли відбувається вихід, консоль миттєво спливе.
Ян

44

Ідея 8.0 має прекрасний ctrl+shift+spaceх 2, який робить таке автозаповнення:

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

вирішує до

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

через будь-яку кількість рівнів геттерів / сеттерів.


27
досить круто, хоча все, що більше двох рівнів, цілком запах коду ...;)
Epaga

33

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

Щось, що я весь час використовую в IntelliJ і яке не має еквівалента в Eclipse.


6
Також історію буфера обміну.
Кімбол Робінсон

3
Цю функцію можна додати до затемнення у вигляді плагіна під назвою AnyEditTools (знайдений на ринку)
Янів

Навіть не знав про історію буфера обміну, поки не прочитав цього. Відмінно!
NodeDad

Врятували мене кілька разів
OscarRyz

31

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


10
ctrl-shift-G у затемненні
дрес

ctrl-shift-G - це не те, що описав Павло .. більше схоже на "ctrl + O", але для всіх класів, методів та змінних у проекті
Тано,

27

Я намагався перейти на IntelliJ через нову Android Studio. Але я зараз дуже розчарований. Я використовую Eclipse з плагіном Code Remanders . Ось простий приклад, чому Eclipse настільки приголомшливий:

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

Ctrl + Space у затемненні

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

Ctrl + Space в IntelliJ

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

В IntelliJ я не отримую жодної інформації, що таке конструктори SimpleTimeZone.

Після Enterв затемненні

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

Я отримую раніше вибраний конструктор, заповнений заздалегідь визначеними іменами змінних. І я бачу тип кожного аргументу. За допомогою Рекомендаторів коду Eclipse відгадує правильний конструктор за попередньо визначеними типами змінних у поточній області та заповнює конструктор цими параметрами.

Адже Enterв IntelliJ нічого не відбувається. Я отримую порожній конструктор. Мені потрібно натиснути, Ctrl + Pщоб побачити очікувані аргументи.

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


25

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

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

Де | є (наприклад), де знаходиться ваш курсор.


4
Насправді в Eclipse (принаймні версії, яку я використовую), коли ви кладете курсор на ім'я методу і натискаєте CTRL + T, ви отримуєте все дерево ієрархії, від самого верхнього інтерфейсу до реалізації листів, і можете переходити до будь-якого з них.
Ювал

2
У Eclipse ви також можете натиснути Ctrl + Клацніть ім'я методу, щоб перейти до визначення / реалізації методу (залежно від контексту)
кваліфікований

8
Справа в тому, що ви насправді не переходите до реалізації. Це просто показано спливаюче вікно, як і javadoc тощо.
jackrabbit

1
У Eclipse ви просто наведіть назву методу з Shift, щоб відкрити спливаюче вікно з його реалізацією
Віктор

24

IntelliJ має декілька вдосконалених перевірок коду (порівнянні, але відмінні від FindBugs).

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

Ось офіційний список CodeInspections, підтримуваний IntelliJ

РЕДАКТУВАННЯ: Нарешті, для IntelliJ знайдеться плагін findbugs . Це ще трохи бета-версія, але поєднання інспекцій коду та FindBugs просто приголомшливо!


так, Findbugs - один з небагатьох аналізаторів статичного коду, який насправді знаходить практичні помилки чесності до користі. :)
Епага

Чи є у вас конкретний приклад його перевірки коду? Який матеріал він може виявити?
Епага

Ще одне посилання про перевірки: hamletdarcy.blogspot.com/2008/04 / ...
штат Міссурі

8
Я вважаю, що перевірка коду IntelliJ виявляє більше помилок, має корисні швидкі виправлення, вона може давати попередження та виправляти лінії під час їх введення. (Вам не потрібно зберігати файл і його не потрібно компілювати) Ці принади роблять більш практичним виправлення помилок якнайшвидше.
Пітер Лорі


15

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

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


2
Це можна зробити з умовними точками перерви в затемненні, але це трохи зухвало. true
HaveAGuess

Я думаю, що IntelliJ дозволяє встановити складніші підрахунки хітів, чи не так?
Кімбол Робінсон

3
Простіше знайти зараз у затемненні - він відображає умови у вікні точки перерви зараз (щоб ви знали, що вони доступні). Ви можете розбивати рахунки, вводити довільний код, любити System.out.println("here"); falseдрукувати, але не переривати (останнє твердження - булевий вираз, який визначає, чи слід перервати)
Скотт Стенчфілд

15

Є багато речей, які ідея вирішує набагато простіше, або немає еквівалента:

  • Дії автозаповнення: ctrl+shift+aВи можете викликати будь-яку дію ідеї з клавіатури, не пам'ятаючи про її комбінацію клавіш ... Подумайте про gnome-do або запуск у Windows, і у вас є ідея! Також ця функція підтримує скорочення CamelCasing;)

  • Полиця: Дозволяє легко зберігати окремі фрагменти коду, а потім переглядати їх через переглядач розрізнень.

  • Місцева історія: Це набагато краще керовано та простіше.

  • Анотації та історія SVN: простіше оглянути, а також ви можете легко бачити історію лише для такої частини цілого вихідного файлу.

  • Автозаповнення скрізь, наприклад, вікна оцінки виразів та точки перерви.

  • Маємо інтеграцію ... набагато, набагато простіше та добре інтегровану.

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

  • Знайдіть багато потужних та добре організованих. Навіть у великих проектах

  • Наскільки стабільно працювати одночасно з декількома гілками великого проекту (як колишній виправник 1,5 Гбіт за галузевими джерелами, і необхідність працювати в них одночасно, ідея показала свої непогані можливості)

  • Чистіший і простіший інтерфейс ...

  • І простіше використовувати лише клавіатуру, не допускаючи використання миші для безлічі простих таксів, заощаджуючи ваш час і надаючи більше уваги коду ... де це важливо!

А тепер, будучи відкритим джерелом ... База користувачів ідеї буде рости експоненціально.


2
Автозавершення дій = швидкий доступ у затемненні; Я не бачу, як
краща

Як зазначив Скотт, це Ctrl + 3. Допомога щодо вмісту також доступна, коли вирази оцінювання та встановлення умовних граничних точок. Я не впевнений, наскільки ближче до згаданих рефакторингу, ніж запропоновано Ctrl + 1 і Ctrl + 2. Значна частина решти звучить суб’єктивно.
nitind

14

Структурний пошук і заміна.

Наприклад, пошук чогось типу:

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

Де $ string $ є буквальним, а $ expr $ - виразом типу my.package.and.Class, а потім замініть на:

  $expr$.inspect($string$);

1
Насправді ви можете шукати в своєму коді тип casts / () - оператор /, що практично неможливо за допомогою простого пошуку тексту
Карл

13

Мої терміни можуть трохи змінитися з точки зору цієї теми, але я просто повинен був відповісти.

Я величезний фанат затемнення - використовую його з моменту першої появи. Тоді друг сказав мені (10+ років тому), що це буде гравець. Він мав рацію.

Однак! Щойно я почав використовувати IntelliJ, і якщо ви ще не бачили або не використовували списки змін - вам не вистачає програми для неба.

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

Крім того, є плагін "Журнал комісій", який виводить текст усіх змін для тих SCCS, які не інтегровані з вашим програмним забезпеченням відстеження помилок. Вставлення журналу в історію роботи квитка фіксує файли, їх версію, дату / час та гілку / теги. Це круто як пекло.

Все це можна підтримати за допомогою плагінів (або майбутніх удосконалень) у затемненні; але Intellij робить це вітерцем.

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


Мені дуже подобається функція змін. Це схоже на незалежний набір виправлень / полиць від VCS, над яким ви можете працювати самостійно, і які можуть бути пов’язані з ними, вони також можуть бути пов’язані з вашим трекером проблем. У вас є місцева історія (як міні-VCS), яка відстежує зміни, коли ви працюєте майже на деталі рівня рядка, щоб ви могли повернутися майже до будь-якого моменту часу, якщо вам потрібно. Також, коли ви перемикаєте завдання, усі IDEA запам'ятовують стан IDE для нового завдання та відновлюють відкриті файли, положення вікон тощо.
sylvanaar

Список змін - насправді функція SVN. IntelliJ просто дозволяє бачити та керувати ними там, де плагіни Eclipse SVN не мають.
Ніл Трафт

12

Налагоджувач IntelliJ має дуже зручну функцію під назвою "Оцінити вираз", що набагато краще, ніж кулон затемнення. Він має повне заповнення коду, і я вважаю його загалом "кориснішим".


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

11

Ну, для мене це тисяча крихітних речей. Деякі макроси, макет GUI взагалі в Eclipse, я вважаю жахливим. Я не можу відкрити кілька проектів у різних вікнах Eclipse. Я можу відкривати кілька проектів, але тоді система, що базується на перегляді, міняє на собі купу речей, коли я перемикаю файли. Перевірка коду IntelliJ здається кращою. Приємні його помічники для вирішення загальних проблем. Безліч простих зручностей, таких як бічна панель, на якій я можу навести курсор миші на гарячу точку, і вона підкаже мені кожен підклас реалізації методу чи методу, який я реалізую, і звідки.

Кожен раз, коли мені доводилося користуватися або спостерігати за тим, як хтось використовує, Eclipse здається, що вони можуть робити більшість речей, які я можу зробити в IntelliJ, але це займає їх довше, і це незграбніше.


9

Введіть змінну. ( Ctrl+Alt+Vу Windows, Cmd+Alt+VOSX)

Скажімо, ви викликаєте метод, 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 вже давно?
rlovtang

3
Досить тривалий час ... Якщо ви використовуєте швидке виправлення control+1(найочевидніша прив'язка клавіш у світі, так?), Він пропонує щось робити в поточному місці курсору, подібно до намірів в IDEA. У ньому перелічено, наприклад, "призначити місцевий", "призначити поле" та інші параметри. control+2, L- це ярлик для нього.
Скотт Стенчфілд

Після затемнення, коли ви вибрали ctrl+2, L, ви все одно можете змінити тип створеної змінної на тип правої частини (за замовчуванням), або будь-який супертип: тип змінної можна вибрати за допомогою TAB.
Гаетан

8

IntelliJ підтримує інтелігенцію та рефакторинг з коду в документи jspx.


Чи можете ви пояснити, що ви маєте на увазі під інтелісенсом? Eclipse також має автоматичне завершення, але ви маєте на увазі щось інше?
Епага

Eclipse не має автоматичного завершення в документах jspx AFAIK. У звичайному jsp так, jspx немає.
krosenvold

3
Він означає, що якщо у вас є JSP, який посилається на властивість POJO, і ви перейменовуєте властивість, ваш JSP буде оновлено правильно. Підтримка JSP від ​​IntelliJ запускає Eclipse / WTP!
erickson

2
Я не можу зробити автоматичне завершення роботи Eclipse для роботи у виразах JSP EL, період. JSP або JSPX, неважливо, це просто зрозуміло. IntelliJ обробляє tagx та jspx так, як ви і очікували: як тег або jsp-файл.
erickson

Приємно бачити, як користувачі затемнення голосують за те, що їм не подобається. Якщо мої спостереження помилкові, будь ласка, відповідайте коментарем. Розкажи, як це зробити у затемненні!
krosenvold

7

Для мене це підтримка Maven IDEA, особливо у версії 9, є другою. Поточна синхронізація проекту з моделлю Maven просто фантастична і робить розвиток приємним.


6

Intellij має значно покращений плагін SVN, ніж Subversive або Subclipse, і він працює! Час, який ми витратили на злиття вихідних файлів за допомогою Eclipse, не замислюється. Це не проблема з IntelliJ, оскільки плагін допомагає вам набагато більше.

Також плагін Subclipse є ненадійним - у нас регулярно є випадки, коли плагін не вважає, що якийсь код було зареєстровано у SVN іншими розробниками, але є - сервер CI обробив їх!


саме, підтримка svn ідеально підходить за ідеєю, тоді як підкліп / підривний помилковий, незграбний і не дуже надійний; це ж стосується git, насправді я не пам'ятаю жодної розумної інтеграції git для затемнення, і IntelliJ справляється з цим дуже добре
Каміль Миколайчик

Особисто я думаю, що ви повинні виконати весь контроль своєї версії в командному рядку, навіть якщо ваш IDE може це зробити. Коли ви це зробите в командному рядку, то пізніше ви будете знати, як бити скрипт, що може дійсно прискорити ваш розвиток. Іноді мої колеги просять мене про допомогу з плагіном subclipse або git eclipse, я просто кажу їм припинити його використовувати і зробити це в командному рядку.
msknapp

4

Емулятор VIM Цей плагін забезпечує майже повну емуляцію vi / vim / gvim під час редагування файлів у IDEA. Підтримується наступна функціональність:

  • Клавіші руху
  • Видалення / зміна
  • Команди вставки режиму
  • Знаки
  • Реєстри
  • Скасувати / повторити VIM
  • Команди візуального режиму
  • Деякі команди Ex
  • Деякі: встановити параметри
  • Повні регулярні вирази VIM для пошуку та пошуку / заміни
  • Макроси
  • Діаграми
  • Історія командного рядка
  • Історія пошуку
  • Jumplists
  • Довідка VIM

деякі коментарі щодо цього плагіна від http://plugins.jetbrains.net/plugin/?id=164

Я не бачу, щоб колись повернутися до будь-якої іншої ідеї через цей плагін .. Краще з обох світів ... Дивовижно !. ось чого мені бракувало у всіх IDE.

Я погоджуюся, я не міг жити без мого плагіна IdeaVim, проте, щоб бути справедливим, є плагін Vim для Eclipse, влучно названий VimPlugin ( vimplugin.org )
Кіт

3
Vwrapper - ще один плагін Vim Eclipse. І він працює навіть краще, ніж плагін Idea Vim (повторювані клавіші працюють). Vwrapper не обробляє пошук та заміну з командного рядка (хоча пошук працює чудово), а також не дозволяє інтерактивно визначати макроси. Погодився, що підтримка Vim є важливою для IDE. Не вдалося б використовувати Eclipse або Idea без нього!
Brent Faust

1
Viableplugin.com дуже добре для затемнення. Я також використовую Intellij, і я виявляю, що Intellij іноді зависає в редакторі за деяких обставин і не відповідає командам.
Джон Лемп


3

Ще кілька речей:

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

2

Дві речі, які IntelliJ робить у тому, що Eclipse не є для мене дуже цінними:

Роздільники методів: ті слабкі сірі лінії між методами роблять код значно читабельнішим

Текст згладжування тексту: робить код таким приємним виглядати в IDE


2
Насправді я вважав, що протизшивання IntelliJ набагато гірше, ніж Eclipse. Однак це було кілька версій IntelliJ тому. Чи було вдосконалено?
лаз

Я використовую пропорційний шрифт Verdana, який, на мою думку, виглядає красивіше, ніж використання антизбудження.
Пітер Лорі

2

Одна дуже корисна особливість - це можливість частково побудувати проект реактора Maven, щоб включити лише необхідні вам деталі.

Щоб зробити це трохи зрозумілішим, розглянемо випадок набору колекцій файлів WAR з великою кількістю загальних ресурсів (наприклад, JavaScript, файли конфігурації Spring тощо), що ділиться між ними за допомогою техніки накладання . Якщо ви працюєте над якою-небудь веб-сторінкою (працює в Jetty) і хочете змінити частину коду накладання, який міститься в окремому модулі, тоді, як правило, ви очікуєте, що вам доведеться зупинити Jetty, запустити збірку Maven, запустити Jetty ще раз і продовжувати. Це стосується Eclipse і майже всіх інших IDE, з якими я працював. У IntelliJ не так. За допомогою налаштувань проекту можна визначити, яку грань модуля ви хотіли б включити у фонову збірку. Отже, ви закінчуєте процес, який видається безпроблемним. Ви вносите зміни майже до будь-якого коду в проекті, і він одразу стає доступним після оновлення браузера.

Дуже акуратно, і дуже швидко.

Я не міг уявити кодування переднього кінця у чомусь на зразок YUI, що спирається на DWR / SpringMVC без нього.


2

Преамбула до моєї відповіді: Моє використання Eclipse обмежене. Нам потрібна Java IDE для роботи на Windows і Mac, а порт Mac сповільнювався з кожним днем. Це було років тому, і я впевнений, що зараз це нормально. Але це нас змусило перейти на IntelliJ, і ми були задоволені цим.

Тепер для моєї відповіді: Єдина велика різниця, яку я ще не бачив, це те, що технічна підтримка краща за допомогою IntelliJ / Jet Brains. Ми відправляємо електронний лист JetBrains і отримуємо остаточну відповідь менш ніж за годину. Якщо шукати відповіді на проблеми із затемненням, ви отримуєте звичайні відповіді "Дурний ідіот" (зазвичай це невелика кількість відповідей), а також набагато більшу кількість проникливих, корисних відповідей. Але для отримання реальної відповіді потрібне певне сортування.


Затемнення є відкритим кодом. Ніхто не платить за відповіді на запитання чи виправлення помилок. Купуйте комерційний IDE на основі Eclipse, наприклад MyEclipse та отримуйте підтримку за свої гроші. Швидка статистика: Я повідомив JetBrains про 56 помилок, 23 з них закриті; від 65 помилок, повідомлених Eclipse 33, закрито. Єдина відмінність полягає в тому, що JetBrains виправляє помилки трохи швидше, ніж Eclipse.
Віктор

2

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

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

Ось довший список функцій IntelliJ 8.0 / 8.1 [ http://www.jetbrains.com/idea/features/index.html]


2

Є одне, що IntelliJ робить набагато краще, ніж Eclipse, і це порожні кишені!

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

Видання IntelliJ Community, очевидно, робить його безкоштовним, але незабаром ви хочете тих додаткових рефакторингу та приємних маленьких смаколиків, які не входять до видання CC.

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

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


3
IntelliJ Ultimate Edition справді не безкоштовний, але як розробник я використовую свій IDE приблизно від 8 до 10 годин на день. Тож я не вважаю його розумною ціною недоліком !!
Ромен Лінсолас

2

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


2

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

Але, є одне, що Intellij не дозволяє, яке затемнення робить. Це не дозволяє запускати кілька проектів одночасно під одним і тим же vm.

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

Eclipse дозволяє налагоджувати кілька проектів під одним екземпляром ide vm.


4
Це повинно було бути розміщено в « Things Eclipse», що може зробити це IntelliJ Can't , не навпаки.
Ніл Трафт

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