Eclipse에서 불가능한 IntelliJ에서 가능한 것들?


365

나는 길을 바꾸고 서로 맹세하는 사람들로부터 들었습니다.

큰 이클립스 팬 이었지만 IntelliJ를 시험해 볼 시간이 없었기 때문에, 나는 Eclipse와는 할 수없는 IntelliJ로 할 수있는 몇 가지 특정한 일을 "Eclipseians"인 IntelliJ 사용자들로부터 듣고 싶습니다.

참고 : 이것은 주관적인 질문이 아니며 IDE 거룩한 전쟁으로 바뀌려는 의도가 아닙니다. 화염 미끼 답변을 공감하십시오 .



1
나는 Eclipse에서 Netbeans, IntelliJ rubyMine으로 갔다. 나는 한동안 가고 있었기 때문에 구체적으로 무엇을 볼 수 없었지만 (따라서 대답이 아닙니다) 가장 큰 도약은 rubyMine이었습니다. 방법을 사용합니다. 보석 문제, 의존성 등을 다른 사람들보다 잘 처리하는 것처럼 보였습니다.
마약 밀매 자

intelliJ에서 Eclipse로 전환하고 싶습니다 (Android 개발 때문에).이 유형 질문과 답변은 매우 유용합니다.
크롬

8
@chrome 안드로이드는 이제 다른 방법으로 전환된다 developer.android.com/sdk/installing/studio.html
다니엘 Alexiuc

1
나는 가능한 많은 게시물을 가지고 있으며 모든 답변은 실제로 일식, 때로는 더 쉬운 IMHO를 수행 할 수있는 것들을 가리 킵니다. 나는 intellij로 $ 가치를 얻은 것처럼 느끼고 싶지만 그것을 구입 한 유일한 이유는 Javascript 자동 완성이었습니다. 이것이 내가 얻는 전부라면 방금 webstorm을 더 싸게 살 수 있었을 것입니다. 아마도 같은 일을하는 일식 플러그인이있을 것입니다. 솔직히 나는 이클립스가 더 일관성이 있다고 생각하고 관점 기능을 그리워합니다.
dres

답변:


185

CTRL- 클릭은 어디서나 작동

클릭 된 객체가 정의 된 곳을 CTRL 클릭하면 Java 코드의 Java 클래스 및 변수뿐만 아니라 Spring 구성 (클래스 이름, 속성 또는 Bean 이름을 클릭 할 수 있음)의 Hibernate 속성 이름이나 클래스 또는 포함 된 리소스를 클릭 할 수 있음) Java 클래스에서 Spring 또는 Hibernate Bean으로 사용되는 한 번의 클릭으로 탐색 할 수 있습니다. 포함 된 JSP 또는 JSTL 태그를 클릭해도 작동합니다 .JavaScript 변수 또는 기능을 Ctrl 키를 누른 채 클릭하면 정의 된 위치로 이동하거나 HTML 또는 JSP의 다른 .js 파일 및 JS 코드를 포함하여 둘 이상의 위치가있는 경우 메뉴를 표시합니다 파일.

많은 언어에 대한 자동 완성

동면

스프링 구성에서 최대 절전 모드 구성 (클래스, 속성 및 DB 열 이름 포함)에서 HSQL 표현식의 자동 완성

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

해당 속성에 주입 할 수있는 콩 목록이 표시됩니다.

자바

자바 코드에서 매우 똑똑한 자동 완성 :

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

그리고 당신 만 보여줍니다 getName () , getAddress에 ()toString는 () 와 (그들 만이 유형별 호환) ) (getName 가 관련성 이름을 가지고 있기 때문에 목록에 처음이다. 여전히 EAP에있는 최신 버전 8에는 훨씬 더 똑똑한 자동 완성 기능이 있습니다.

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의 스마트 자동 완성

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>;
}

프로젝트의 다른 JS 객체에 get * 메소드가 있더라도 getName ()getAddress () 만 표시 하고 this.getName ()을 Ctrl 키를 클릭하면이 클래스 가 정의 된 경우 에도이 클래스를 정의합니다. 프로젝트에 다른 getName () 함수가 있습니다.

HTML

<script src = "", <img src = ""등과 같은 파일 경로에서 자동 완성 및 Ctrl 키를 누른 상태로 클릭 한 것을 언급 했습니까?

HTML 태그 속성에서 자동 완성. 속성 이름과 값 모두 HTML 태그의 스타일 속성에서 자동 완성. 클래스 속성에서도 자동 완성.
<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가 유효하지 않다는 것을 알기 위해 서버를 다시 시작할 필요가 없습니다.

마지막으로 Windows XP x64에서 Eclipse를 실행할 수 없었습니다.

그것을 당신이 제안합니다 person.name이있는 Person.Address . person.name을 Ctrl- 클릭 하면 Person 클래스 의 getName () 메소드로 이동합니다 .

Pattern.compile("");put \\를 입력 하고 CTRL-SPACE를 누른 다음 정규식에 넣을 수있는 유용한 힌트를 확인하십시오. 여기에서 언어 주입을 사용할 수도 있습니다. 문자열 매개 변수를 사용하는 고유 한 메서드를 정의하고 IntelliLang 옵션 대화 상자에서 매개 변수가 정규식임을 선언하면 자동 완성도 제공됩니다. 말할 것도없이 잘못된 정규식을 강조합니다.

다른 특징들

Eclipse에 존재하는지 확실하지 않은 기능이 거의 없습니다. 그러나 적어도 Eclipse를 사용하는 팀 구성원 각각은 일부 병합 도구를 사용하여 로컬 변경 사항을 소스 제어 (보통 WinMerge)의 변경 사항과 병합합니다. 나는 그것을 필요로하지 않습니다-IDEA에서 병합하면 충분합니다. 3 번 클릭하면 소스 제어에서 파일 버전 목록을 볼 수 있으며 3 번 더 클릭하면 이전 버전 또는 이전 및 현재 버전을 비교하여 병합 할 수 있습니다.

WEB-INF\lib각 파일을 따로 선택하지 않고 폴더 안에 모든 .jar이 필요하도록 지정할 수 있으므로 누군가가 해당 폴더에 새 .jar를 커밋하면 자동으로 선택됩니다.

위에서 언급 한 것의 10 % 정도일 것입니다. Maven, Flex, Swing, EJB 및 기타 많은 것들을 사용하지 않으므로 어떻게 도움이되는지 말할 수 없습니다. 그러나 그렇습니다.


26
Java 코드 자동 완성에 대한 두 가지 예는 일식에서 동일하게 작동합니다. 더 많은 담당자가 Java 예제를 삭제할 수 있습니까?
Craig P. Motlin

9
대부분의 예제는 Eclipse에서 직접 또는 타사 플러그인을 통해 사용할 수 있습니다. Eclipse에서 svn merge에 외부 도구를 사용하는 사람은 아무도 없습니다. 스프링 / 하이버 네이트 / 자바 스크립트 편집기 (및 자동 완성)에는 타사 플러그인이 있습니다. 정규식과 jsp EL에 관해서는 :)
Yoni

1
Jboss 도구 플러그인은 Hibernate 및 JSF 표현식의 자동 완성 기능을 추가합니다.
Damo

4
일식 디버깅보기에는 구현 세부 사항이 아닌 콜렉션의 컨텐츠를 표시하는 옵션이 있습니다. 목록과 세트의 경우 내용이 표시됩니다. 지도의 경우 키-값 쌍의 목록이 표시됩니다. 사용자 정의 디스플레이를 설정할 수도 있습니다.
deterb

1
Eclipse 3.7 (Indigo)도 스프링 구성에서 클래스 이름을 자동 완성합니다.
stivlo

81

나는 일식 IntelliJ를 사용하고뿐만 아니라 하나의 이유가있다 : 사용성

디버깅, 리팩토링, 자동 완성 여부에 관계없이 Intellij는 일관된 키 바인딩, 원하는 옵션 등을 사용하여 훨씬 쉽게 사용할 수 있습니다. 후자는 intellij보다 많은 플러그인을 사용할 수 있으며 쉽게 확장 할 수 있습니다.


10
똑똑하고 지독하다. 이것은 많은 유용성 기능을 추가합니다. 서브 클래스로 순회 또는 클래스 구현, 경로 찾기, 찾기 사용법 등이 너무 빨리 발생합니다. 자동 완성은 인라인으로 발생하며 탭만 삽입하면됩니다. 자동 완성 기능도 똑똑합니다. 순수한 제안이 아니라 IDE가 이름 등을 생각합니다.
Ravindranath Akila

IntelliJ를 사용해야하는 이유는 여러 가지가 있습니다. 사용성도 목록의 최상위가 아닙니다. IntelliJ에는 Eclipse보다 많은 기능이 있습니다. IntelliJ는 총 플러그인 수가 적지 만 '품질'플러그인이 더 많습니다. 따라서이 답변은 투표권에도 불구하고 잘못되었습니다.
소프트웨어 엔지니어

2
아 미트는 "단 하나의 이유가 말했다 이후 @EngineerDollery 나는 그것의"잘못 "언급하지 않았다 내가 하지"단 하나의 이유가 일식 인 IntelliJ 아니라 사용 " 하는 일식 IntelliJ를 사용하지"가.
맥스 나나시

54

아마의 문제가 아니라 무엇을 / 수행하지만, 할 수는 없습니다 방법 .

예를 들어 둘 다 프로젝트, 클래스 경로, 출력, 구조 등을위한 도킹 패널로 둘러싸인 편집기를 가지고 있습니다. 일식 으로이 모든 패널은 열린 채로 유지되어 편집 가능한 전체 영역의 약 1/5을 내 편집기 영역을 크게 줄입니다. 마우스를 잡고 클릭하여 해당 패널을 최소화해야합니다. 하루 종일 이것을하는 것은 일식에서 매우 실망스러운 경험입니다.

정확한 결과는보기 출력 창에서 발생합니다. Idea에서 프로그램을 실행하면 프로그램이 최소화 된 경우에도 출력 창 / 패널을 통해 프로그램의 출력을 볼 수 있습니다. 이클립스에서 마우스를 다시 잡고 출력 탭을 찾아서 클릭하면 프로그램 출력을 볼 수 있습니다. 출력 창 / 패널은 다른 모든 창과 마찬가지로 다른 것이므로 아이디어에서는 처리됩니다. 특별한 방법 : "사용자가 자신의 프로그램을 실행하고 싶다면, 그 프로그램의 출력을보고 싶을 것입니다!" 내가 쓸 때 너무 자연스럽게 보이지만이 기본 사용자 인터페이스 개념에서 일식은 실패합니다.

아마도 이클립스에 대한 바로 가기가있을 것입니다 (프로그램을 실행할 때 자동 숨기기 출력 창 및 프로그램을 실행할 때 자동 표시) 10 가지 기능으로 포럼, 온라인 도움말 등에서 바로 가기를 찾아야합니다. 자연스러운".

자동 완성, 자동 줄 바꿈, 빠른 문서보기 등 모든 기능에 대해이 작업을 반복 할 수 있습니다. 아이디어에서 사용자 경험이 일식보다 훨씬 더 즐겁다 고 생각합니다. 그리고 모토는 실현됩니다 "즐거움으로 개발"

Eclipse는 더 큰 규모의 프로젝트 (+300 개의 jar 및 +4000 개의 클래스)를 처리하며 IntelliJ Idea 8이이 작업을하고 있다고 생각합니다.

물론이 모든 것은 주관적입니다. 사용자 경험을 어떻게 측정 할 수 있습니까?


18
이클립스는 최대 / 최소로 편집 창을 제어 m를 누르거나 편집 탭을 두 번 클릭 할 수 있습니다 -이 큰 거래를하는 데 도움이
스콧 Stanchfield

와우. 고마워. 이클립스에 내가 알고있는 방법이 있다면 매우 도움이 될 것입니다 (핫키 치트 시트를 읽는 것 외에도) 감사합니다. 출력 창으로 변경하는 방법이 있습니까?
OscarRyz

ALT-SHIFT-Q는 Show View 창을 불러옵니다 ... C는 콘솔 용 ALT-SHIFT-Q, C는 콘솔로 이동하는 바로 가기입니다.
Instantsoup

7
Ctrl + Shift + L은 현재 컨텍스트에서 사용할 수있는 단축키 목록을 보여줍니다.
Dan Berindei 2009

3
하위 창 제목 (모든 하위 창)을 두 번 클릭하면 하위 창이 전체 화면으로 나타납니다. 복원을 위해 다시 수행하십시오. 콘솔로 패널을 최소화 한 다음 출력이 발생하면 콘솔이 즉시 나타납니다.
이안

44

Idea 8.0에는 ctrl+shift+space다음과 같은 자동 완성 기능을 수행하는 멋진 x 2가 있습니다.

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

~로 해결하다

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

여러 수준의 게터 / 세터를 통해


27
2 단계 이상은 코드 냄새가 나지만 꽤 시원합니다 ...;)
Epaga

33

"클립 보드와 비교"를 잊지 마십시오.

내가 IntelliJ에서 항상 사용하고 Eclipse에서 이에 상응하지 않는 것.


6
또한 클립 보드 기록.
킴볼 로빈슨

3
이 기능은 AnyEditTools 라는 플러그인 형태로 일식에 추가 할 수 있습니다 (시장에서 확인)
Yaniv

이것을 읽을 때까지 클립 보드 기록에 대해 알지 못했습니다. 우수한!
NodeDad

여러 번 저장했습니다
OscarRyz

31

내가 찾은 Eclipse에서 이와 동등한 것이없는 IntelliJ에서 가장 좋아하는 바로 가기를 '기호로 이동'이라고합니다. CTRL-ALT-SHIFT-N전체 프로젝트에서 입력을 시작하고 클래스, 메소드 이름, 변수 이름 등을 가져올 수 있습니다.


10
이클립스에서 ctrl-shift-G
dres

ctrl-shift-G는 Paul이 묘사 한 것이 아닙니다. "ctrl + O"와 비슷하지만 프로젝트의 모든 클래스, 메소드 및 변수
Tano

27

새로운 Android Studio로 인해 IntelliJ로 전환하려고했습니다. 그러나 나는 지금 매우 실망합니다. Code Recommanders 와 함께 Eclipse를 사용하고 있습니다. Plugin 있습니다. 다음은 이클립스가 왜 그렇게 멋진 지에 대한 간단한 예입니다.

새을 만들고 싶습니다 SimpleTimeZone.SimpleTimeZone인수가 0 인 생성자가 없습니다.

Ctrl + Space 이클립스에서

여기에 이미지 설명을 입력하십시오

Ctrl + Space IntelliJ에서

여기에 이미지 설명을 입력하십시오

IntelliJ에서는 어떤 종류의 생성자에 대한 정보가 없습니다. SimpleTimeZone .

Enter이클립스에서 후

여기에 이미지 설명을 입력하십시오

사전 선택된 변수 이름으로 채워진 이전에 선택한 생성자를 얻습니다. 그리고 나는 모든 논증의 유형을 볼 수 있습니다. Code Recommanders를 사용하면 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 + 클릭하여 메소드 정의 / 구현으로 이동 (컨텍스트에 따라 다름)
qualidafial

8
요점은 실제로 구현으로 이동하지 않는다는 것입니다. javadoc 등과 같이 팝업으로 표시됩니다.
jackrabbit

1
이클립스에서 당신은 구현과 열린 팝업으로 이동하여 메소드 이름을 가져
빅터

24

IntelliJ에는 꽤 고급 코드 검사가 있습니다 (FinBugs와 비교할 수는 있지만 다릅니다).

IntelliJ를 사용할 때 FindBugs 플러그인이 심각하게 누락되었지만 Eclipse / FindBugs 통합은 매우 훌륭합니다.

여기 은 IntelliJ에서 지원하는 CodeInspections의 공식 목록입니다.

편집 : 마지막으로 IntelliJ 용 findbugs 플러그인 이 있습니다. 아직 베타 버전이지만 Code Inspections와 FindBugs의 조합은 훌륭합니다!


그렇습니다. findbugs는 실제로 정직하고 실질적인 버그를 실제로 찾아내는 몇 가지 정적 코드 분석기 중 하나입니다. :)
Epaga

코드 검사의 특정 예가 있습니까? 어떤 종류의 물건을 탐지 할 수 있습니까?
Epaga

검사에 관한 또 다른 링크 : hamletdarcy.blogspot.com/2008/04/…
Mo.

8
IntelliJ의 코드 검사에서 더 많은 버그를 발견하고 유용한 빠른 수정 사항을 발견했으며 입력 할 때 경고를 표시하고 줄을 수정할 수 있습니다. (파일을 저장할 필요가없고 컴파일 할 필요도 없습니다.) 이러한 기능 덕분에 가능한 빨리 버그를 수정하는 것이 더 실용적입니다.
Peter Lawrey


15

내가 정기적으로 사용하는 한 가지는 중단 점을 설정 한 다음 수행하는 작업을 제어하는 ​​것입니다. (마지막으로 다른 사람들은 모두 이클립스를 사용했습니다. 아무도 이클립스에서이 작업을 수행하는 방법을 찾을 수 없다는 사실에 놀랐습니다.)

예를 들어 중단 점이 실제로 멈추지 않고 콘솔에 메시지를 기록 할 수 있습니다. 즉, "System.out.println (...)"으로 코드를 버리고 다시 컴파일 할 필요가 없습니다.


2
이클립스에서 조건부 중단 점 으로이 작업을 수행 할 수 있지만 약간 건방진입니다. true
HaveAGuess

intelliJ를 사용하면 더 복잡한 적중 횟수를 설정할 수 있습니다.
킴볼 로빈슨

3
이제 일식에서 찾기가 더 간단합니다. 이제 중단 점보기에 조건을 표시합니다 (사용할 수 있음). 당신은 같은 임의의 코드를 입력 카운트에 깰 수 System.out.println("here"); false인쇄하지만 중단하지 (마지막 문장은 우리가 파손될 경우를 결정하는 부울 식입니다)
스콧 Stanchfield

15

아이디어가 훨씬 더 간단한 방법으로 해결되거나 이에 상응하는 것은 없습니다.

  • 자동 완성 작업 : ctrl+shift+a키 조합을 기억하지 않고 키보드에서 아이디어 작업을 호출 할 수 있습니다. 창에서 gnome-do 또는 launchy에 대해 생각하면 아이디어가 있습니다! 또한이 기능은 CamelCasing 약어를 지원합니다.)

  • 선반 : 일부 코드를 쉽게 분리 한 다음 diff 뷰어를 통해 검토 할 수 있습니다.

  • 현지 역사 : 훨씬 더 잘 관리되고 더 간단합니다.

  • SVN 주석 및 히스토리 : 검사가 간단하고 전체 소스 파일의 해당 부분에 대해서만 히스토리를 쉽게 볼 수 있습니다.

  • 평가 식 및 중단 점 조건 창과 같은 모든 곳에서 자동 완성.

  • Maven 통합 ... 훨씬 더 단순하고 잘 통합되었습니다.

  • 루프 삽입, 랩핑 / 캐스팅, 이름 바꾸기 및 변수 추가와 같이 손에 훨씬 더 가까운 리팩터링.

  • 훨씬 강력하고 체계적으로 구성하십시오. 큰 프로젝트에서도

  • 대규모 프로젝트의 여러 브랜치에서 동시에 작업하는 것이 훨씬 안정적입니다 (브랜치 소스별로 1.5Gb의 이전 버그 수정 프로그램과 동시에 작업해야 함, 아이디어는 견고한 기능을 보여주었습니다)

  • 더 깨끗하고 간단한 인터페이스 ...

  • 키보드로만 사용하는 것이 더 간단하여 많은 간단한 탁에 마우스를 사용할 필요가 없어 시간을 절약하고 코드에 더 집중할 수 있습니다.

그리고 이제는 오픈 소스가되어 아이디어 사용자 기반이 기하 급수적으로 증가 할 것입니다.


2
자동 완성 액션 = 일식에 빠르게 접근; 나는 일식보다 현지 역사가 얼마나 쉬운 지
모르겠다

Scott이 지적했듯이 Ctrl + 3입니다. 컨텐츠 표현식은 평가 표현식 및 조건부 중단 점 설정시에도 사용 가능합니다. 언급 된 리팩토링이 Ctrl + 1 및 Ctrl + 2가 제안한 것보다 얼마나 가까이 있는지 잘 모르겠습니다. 나머지는 주관적으로 들립니다.
nitind

14

구조적 검색 및 교체

예를 들어 다음과 같은 것을 검색하십시오.

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

여기서 $ string $은 리터럴이고 $ expr $는 my.package.and.Class 유형의 표현식이며 다음과 같이 바뀝니다.

  $expr$.inspect($string$);

1
실제로 코드에서 캐스트 / ()-operator / 유형을 검색 할 수 있습니다. 일반 텍스트 검색으로는 불가능합니다
Karl

13

이 스레드와 관련하여 타이밍이 약간 떨어질 수 있지만 방금 응답해야했습니다.

나는 처음 등장한 이래로 사용하는 거대한 일식 팬입니다. 친구가 그때 (10 년 이상 전에) 그것이 선수가 될 것이라고 말했습니다. 그는 옳았다.

하나! 방금 IntelliJ를 사용하기 시작했으며 변경 목록을 보거나 사용하지 않은 경우 프로그래밍 천국에서 빠져 있습니다.

내 개발 브랜치 ala clearcase에서 변경된 파일을 추적하는 기능은 일식 플러그인에서 찾고있는 것이 었습니다. Intellij는 단일 커밋에 대한 모든 변경 사항을 매우 쉽게 추적합니다. 변경된 파일을 사용자 정의 목록으로 분리 할 수 ​​있습니다. 로컬에서 고유해야하지만 저장소와 동기화하거나 비교할 때 지속적으로 플래그가 지정된 구성 파일에 사용합니다. 변경 목록에 나열하고 모니터링 할 수는 있지만 깔끔하게 정리하여 실제 추가에 집중할 수 있습니다 나는 만들고있다.

또한 버그 추적 소프트웨어와 통합되지 않은 SCCS에 대한 모든 변경 사항의 텍스트를 출력하는 Commit Log 플러그인이 있습니다. 로그를 티켓의 작업 기록에 붙여 넣으면 파일, 버전, 날짜 / 시간 및 지점 / 태그가 캡처됩니다. 지옥처럼 시원합니다.

이 모든 것은 일식에서 플러그인 (또는 향후 개선 사항)을 통해 지원 될 수 있습니다. 그러나 Intellij는 이것을 산들 바람으로 만듭니다.

마지막으로,이 제품에 대한 주류적인 사랑, 즉 키 스트로크에 정말 흥분되어 고통 스럽지만 재미 있습니다.


변경 목록 기능이 정말 마음에 듭니다. VCS 독립적 인 패치 / 선반 세트와 유사하게 독립적으로 작업 할 수 있으며 이슈 트래커와 연관 될 수 있습니다. 거의 라인 레벨 세부 사항에서 작업하는 동안 변경 사항을 추적하는 로컬 히스토리 (미니 VCS와 같은)가 있으므로 필요한 경우 거의 모든 시점으로 돌아갈 수 있습니다. 또한 작업을 전환하면 모든 IDEA는 새 작업에 대한 IDE 상태를 기억하고 열린 파일, 창 위치 등을 복원합니다.
sylvanaar

변경 목록은 실제로 SVN 기능입니다. IntelliJ를 사용하면 Eclipse SVN 플러그인이없는 곳에서이를보고 관리 할 수 ​​있습니다.
Neil Traft

12

IntelliJ 디버거에는 "Evaluate Expression"이라는 매우 편리한 기능이 있습니다. 이클립스 펜던트보다 훨씬 뛰어납니다. 그것은 완전한 코드 완성을 가지고 있으며 일반적으로 "더 유용하다"고 생각합니다.


8
Eclipse에는 코드 완성 기능을 제공하는 표현식 평가 기가 있습니다. 창->보기 표시-> 디버그-> 표시로 이동하십시오. 디버거에서 중단 점에서 중지되면 해당 표시보기에서 임의의 표현식을 평가할 수 있습니다.
laz

11

글쎄, 저에게는 천 개의 작은 것들입니다. 매크로 중 일부는 일반적으로 Eclipse의 GUI 레이아웃입니다. Eclipse의 다른 창에서 여러 프로젝트를 열 수 없습니다. 여러 프로젝트를 열 수 있지만 파일을 전환하면 뷰 기반 시스템이 내 주위에 많은 것들을 바꿉니다. IntelliJ의 코드 검사가 더 좋아 보입니다. 일반적인 문제를 해결하는 팝업 도우미가 좋습니다. 사이드 스폿과 같이 핫 스팟 위로 마우스를 가져갈 수있는 많은 간단한 유용성 및 구현중인 메소드 또는 메소드의 모든 하위 클래스를 알려줍니다.

Eclipse를 사용하거나 누군가가 사용하는 것을 볼 때마다 Eclipse에서 IntelliJ에서 할 수있는 대부분의 일을 할 수있는 것처럼 보이지만 더 오래 걸리고 더 복잡합니다.


9

변수를 소개하십시오. (Ctrl+Alt+V Windows에서는Cmd+Alt+V OSX)

당신이하는 방법, 전화 말할 수 service.listAllPersons() 히트 Ctrl+Alt+VEnter 삽입 메서드 호출에서 반환 값 및 변수 :

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

입력을 저장하고 호출하는 메소드의 리턴 유형을 확인할 필요가 없습니다. 제네릭을 사용할 때 특히 유용합니다. 예 :

new ArrayList<String>()

[변수 소개]

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

(물론 타격하기 전에 변수 이름을 쉽게 변경할 수 있습니다 Enter)


13
Eclipse에서 Ctrl + 2 L입니다.
Micke

2
알았고, 내가 물어 본 이클립스 사용자도 없었습니다. 이 기능은 오랫동안 Eclipse의 일부입니까?
rlovtang

3
꽤 오랜 시간 ... 빠른 수정 control+1(세계에서 가장 확실한 키 바인딩, eh?)을 사용하는 경우 IDEA의 의도와 유사하게 현재 커서 위치에서 수행 할 수있는 작업을 제안합니다. 예를 들어 "로컬 할당", "할당 필드"및 기타 옵션이 나열됩니다. control+2, L바로 가기입니다.
Scott Stanchfield

일식에서는을 선택한 ctrl+2, L후에도 작성된 변수의 유형을 오른쪽 유형 (기본적으로) 또는 다른 수퍼 유형으로 변경할 수 있습니다. 변수 유형은 TAB을 사용하여 선택할 수 있습니다.
Gaetan

8

IntelliJ는 코드에서 jspx 문서로 지능적이고 리팩토링을 지원합니다.


IntelliSense의 의미를 명확하게 설명해 주시겠습니까? Eclipse에는 자동 완성 기능이 있지만 다른 의미가 있습니까?
Epaga

Eclipse는 jspx 문서 AFAIK에서 자동 완성 기능이 없습니다. 일반 jsp에서 jspx no입니다.
krosenvold

3
즉, POJO의 특성을 참조하는 JSP가 있고 특성 이름을 바꾸면 JSP가 올바르게 업데이트됩니다. IntelliJ의 JSP 지원으로 Eclipse / WTP가 시작됩니다!
erickson

2
JSP EL 표현식, 기간에서 작동하기 위해 Eclipse의 자동 완성을 얻을 수 없습니다. JSP 또는 JSPX는 중요하지 않습니다. 단서가 없습니다. IntelliJ는 태그 또는 jsp 파일과 같이 예상대로 tagx 및 jspx를 처리합니다.
erickson

이클립스 사용자가 싫어하는 것을 어떻게 투표하는지 보는 것이 좋습니다. 관찰 결과가 틀렸다면 의견을 보내주십시오. 이클립스 에서이 작업을 수행하는 방법을 알려주십시오!
krosenvold

7

나를 위해, 그것은 IDEA의 maven 지원, 특히 버전 9에서 최고입니다. 프로젝트를 maven 모델에 즉시 동기화하는 것은 환상적이며 개발을 즐겁게 만듭니다.


6

Intellij는 Subversive 또는 Subclipse보다 훨씬 뛰어난 SVN 플러그인을 가지고 있으며 작동합니다! 우리가 Eclipse를 사용하여 소스 파일을 병합하는 데 걸린 시간은 생각하지 않습니다. 플러그인이 더 많은 도움을주기 때문에 IntelliJ에서는 문제가되지 않습니다.

또한 Subclipse 플러그인은 신뢰할 수 없습니다-우리는 플러그인이 다른 개발자가 SVN에 체크인 한 코드가 없다고 생각하는 인스턴스를 가지고 있지만 CI 서버가 처리했습니다!


정확하게는 svn 지원이 훌륭하지만 subclipse / subversive는 버그가 많고 서투르고 신뢰할 수 없습니다. git도 마찬가지입니다. 실제로 일식에 대한 합리적인 git 통합을 기억하지 못하고 intelliJ가 잘 처리합니다.
Kamil Mikolajczyk

개인적으로 IDE가 할 수 있더라도 명령 줄에서 모든 버전 제어를 수행해야한다고 생각합니다. 명령 행에서이를 수행하면 나중에 스크립트를 bash로 작성하는 방법을 알게되어 개발 속도를 높일 수 있습니다. 때로는 동료들이 서브 클립 또는 git의 이클립스 플러그인에 대한 도움을 요청하기도합니다.
msknapp

4

VIM 에뮬레이터. 이 플러그인은 IDEA에서 파일을 편집하는 동안 거의 완벽한 vi / vim / gvim 에뮬레이션을 제공합니다. 다음 기능이 지원됩니다.

  • 모션 키
  • 삭제 / 변경
  • 삽입 모드 명령
  • 점수
  • 레지스터
  • VIM 실행 취소 / 재실행
  • 비주얼 모드 명령
  • 일부 Ex 명령
  • 일부 : 설정 옵션
  • 검색 및 검색 / 대체를위한 완전한 VIM 정규식
  • 매크로
  • 약력
  • 커맨드 라인 히스토리
  • 검색 기록
  • 점프리스트
  • VIM 도움말

http://plugins.jetbrains.net/plugin/?id=164 에서이 플러그인에 대한 의견

이 플러그인으로 인해 다른 아이디어로 돌아가는 것을 볼 수 없습니다. 두 세계 중 최고 ... 최고!. 그것이 모든 IDE에서 부족했던 것입니다.

IdeaVim 플러그인 없이는 살 수 없었지만, 이클립스 용 Vim 플러그인 ( VimPlugin ( vimplugin.org ) 이라고 ) 이 공정하다는 것을 동의합니다
Keith

3
Vwrapper는 또 다른 Vim Eclipse 플러그인입니다. 그리고 Idea Vim 플러그인보다 더 잘 작동합니다 (반복 키 작동). Vwrapper는 명령 줄에서의 검색 및 바꾸기를 처리하지 않지만 (검색은 훌륭하지만) 대화식으로 매크로를 정의 할 수 없습니다. IDE에서는 Vim 지원이 필수적이라고 동의했습니다. 그것없이 이클립스 나 아이디어를 사용하지 않을 것입니다!
브렌트 파우스트

1
viableplugin.com는 일식을 위해 아주 좋은 것입니다. 나는 intellij를 사용하고 있으며 일부 상황에서 intellij가 때때로 편집기에서 끊어지고 명령에 응답하지 않는 것을 발견했습니다.
John Lemp


3

몇 가지 다른 것들 :

  • 메소드 서명 변경시 매개 변수 / 예외 전파, 호출 스택 내부의 메소드 업데이트에 매우 유용
  • jdbc 호출에 인수로 전달 된 문자열의 SQL 코드 유효성 검사 (및 새로 번들로 제공되는 언어 주입 항목)
  • 인터페이스 및 클래스 (및 해당 메소드) 및 스마트 구현 탐색 (Ctrl + Alt + Click 또는 Ctrl + Alt + B)에 대한 아이콘으로 구현 / 덮어 쓰기
  • EJB 2.1 인터페이스와 Bean 클래스 간 연결 (리팩토링 지원 포함) 오래된 프로젝트이지만 오래된 프로젝트에서 작업 할 때 여전히 가치가 있습니다.

2

IntelliJ가 Eclipse 가하는 두 가지 일은 나에게별로 가치가 없습니다.

메서드 구분자 : 메서드 사이의 희미한 회색 선으로 코드를 훨씬 읽기 쉽게 만듭니다.

텍스트 앤티 앨리어싱 : IDE에서 코드를보기 좋게 만듭니다


2
실제로 IntelliJ의 앤티 앨리어싱이 Eclipse보다 훨씬 나쁘다는 것을 알았습니다. 그러나 이것은 이전 버전의 IntelliJ였습니다. 개선 되었습니까?
laz

앤티 앨리어싱을 사용하는 것보다보기에 좋은 Verdana 비례 글꼴을 사용합니다.
Peter Lawrey

2

매우 유용한 기능 중 하나는 필요한 부품 만 포함되도록 Maven 원자로 프로젝트를 부분적으로 구축하는 기능입니다.

좀 더 명확하게하기 위해 오버레이 기술을 사용하여 많은 공통 리소스 (예 : JavaScript, Spring 구성 파일 등)가 공유되는 WAR 파일 모음을 고려하십시오. . Jetty에서 실행되는 일부 웹 페이지에서 작업하고 별도의 모듈에있는 오버레이 코드를 변경하려면 일반적으로 Jetty를 중지하고 Maven 빌드를 실행하고 Jetty를 다시 시작해야합니다. 계속하다. 이것은 Eclipse의 경우이며 내가 작업했던 다른 모든 IDE와 거의 같습니다. IntelliJ에서는 그렇지 않습니다. 프로젝트 설정을 사용하여 백그라운드 빌드에 포함 할 모듈의 패싯을 정의 할 수 있습니다. 결과적으로 당신은 완벽하게 보이는 프로세스로 끝납니다. 프로젝트의 거의 모든 코드를 변경하면 브라우저를 새로 고친 후 즉시 사용할 수 있습니다.

매우 깔끔하고 빠릅니다.

YUI와 같은 방식으로 프론트 엔드를 DWR / SpringMVC로 백업하는 것을 상상할 수 없었습니다.


2

내 대답의 서문 : Eclipse 사용은 제한되어 있습니다. Windows와 Mac 모두에서 작동하려면 Java IDE가 필요했으며 Mac 포트는 매일 느려졌습니다. 몇 년 전이었고 지금은 괜찮습니다. 그러나 이것이 우리가 IntelliJ로 전환하게되었고 우리는 그것에 만족했습니다.

내 대답 : 아직 언급하지 않은 한 가지 큰 차이점은 IntelliJ / Jet Brains에서 기술 지원이 더 낫다는 것입니다. 우리는 JetBrains로 이메일을 보내고 1 시간 이내에 최종 답변을받습니다. 이클립스 문제에 대한 답을 찾으면 통찰력 있고 도움이되는 답변이 훨씬 많을수록 일반적으로 "멍청한 바보"답변 (보통 적은 수의 답글)이 나타납니다. 그러나 실제 답변을 얻으려면 약간의 정렬이 필요합니다.


Eclipse는 오픈 소스입니다. 질문에 대한 답변이나 버그 수정에 대해서는 아무도 지불하지 않습니다. 상용 Eclipse 기반 IDE (예 : MyEclipse)를 구매하고 돈을 지원 받으십시오. 빠른 통계 : JetBrains에보고 된 버그 56 개 중 23 개가 닫혔습니다. Eclipse 33에보고 된 65 개의 버그가 마감되었습니다. 유일한 차이점은 JetBrains가 Eclipse보다 약간 빠르게 버그를 수정한다는 것입니다.
Victor

2

IntelliJ에서 항상 사용하는 것은 입력 할 때 리팩토링입니다. IDE를 사용하여 인쇄물 (원래 일식으로 작성)에서 클래스를 다시 작성했으며 Eclipse보다 동일한 클래스를 작성하기 위해 키 스트로크 / 마우스 클릭을 약 40 % 줄였습니다.

불완전한 코드 조각으로 리팩토링을 많이 지원할 때까지 Eclipse를 사용하고 싶지 않습니다.

다음은 IntelliJ 8.0 / 8.1의 더 긴 기능 목록입니다. [ http://www.jetbrains.com/idea/features/index.html]


2

IntelliJ가 Eclipse보다 훨씬 더 좋은 점이 있으며 주머니가 비어 있습니다!

그러나 나는 그것을 사용하는 것을 선호하고 Eclipce보다 큰 이점은 큰 프로젝트와 느린 컴퓨터를 위해 파일 시스템과 동기화하는 방식입니다 (작업 환경에서 PC는 집에있는 것보다 훨씬 느립니다) 초기 인덱싱 시간이 느리더라도 IntelliJ가 더 빠른 것처럼 보이는 곳에서 어려움을 겪습니다.

IntelliJ Community 에디션은 분명히 무료로 사용하지만 CC 에디션에 포함되지 않은 추가 리팩토링 및 멋진 작은 기능을 곧 원합니다.

내 의견으로는, 일반적으로 더 나은 사용자 경험이지만 그만한 가치가 있는지 여부는 각 개발자가 스스로 대답하는 질문입니다.

그러나 NetBeans가 항상 향상되어 현재 Java 용으로 최대 3 개의 훌륭한 IDE가 있다는 점에 감사드립니다.


3
IntelliJ Ultimate Edition은 실제로 무료는 아니지만 개발자는 하루에 약 8-10 시간 내 IDE를 사용합니다. 그래서 나는 그의 합리적인 가격을 결함으로 보지 않습니다!
Romain Linsolas

2

데이터 흐름 분석 : 여기에 설명 된 절차 간 역류 분석 및 순방향 흐름 분석 . 내 경험은 Community Edition을 기반으로하며 데이터 흐름 분석은 상당히 잘 수행됩니다. 코드가 매우 복잡한 경우에 거의 실패했습니다.


2

우선 나는 intellij를 좋아합니다. 이클립스가 부족한 기능은 적어도 100 가지가 있습니다. 나는 리팩토링, 리 네이밍, 이동 및 이미 언급 된 다른 것들에 관해서는 하이퍼 볼이 설명 할 수없는 신뢰성과 인텔리전스에서 훨씬 더 잘 이야기하고 있습니다.

그러나 intellij가 어떤 일식을 허용하지 않는 것이 있습니다. 동일한 vm에서 여러 프로젝트를 한 번에 실행할 수 없습니다.

프론트, 미들, 코어, 에이전트 등이 서로 상호 작용해야하는 별도의 프로젝트가있는 경우 동시에 신속하게 수정 및 디버깅 할 수 없습니다. 현재 이에 대처하는 유일한 방법은 개미 스크립트를 사용하여 종속 프로젝트에서 jar를 배포하고 업데이트하거나 maven을 사용하는 것입니다.

Eclipse를 사용하면 하나의 IDE VM 인스턴스에서 여러 프로젝트를 디버깅 할 수 있습니다.


4
이것은 Eclipse가 할 수있는 일에 IntelliJ Ca n't 할 수는 없지만 다른 방법 으로 게시되어 있어야합니다 .
닐 뗏목

IntelliJ는 아무런 문제 없이이 작업을 수행합니다. 이 대답은 단순히 잘못되었습니다.
소프트웨어 엔지니어
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.