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

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

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

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



답변

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 및 기타 많은 것들을 사용하지 않으므로 어떻게 도움이되는지 말할 수 없습니다. 그러나 그렇습니다.


답변

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

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


답변

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

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

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

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

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

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

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


답변

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

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

~로 해결하다

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

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


답변

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

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


답변

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


답변

새로운 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예상되는 논증을보기 위해 를 눌러야 한다.