Eclipseでは不可能なIntelliJで可能なこと?


365

どちらか一方に切り替えて、どちらか一方を誓う人から聞いたことがあります。

Eclipseの大ファンですが、IntelliJを試す時間がなかったので、「元日食主義者」であるIntelliJユーザーから、EclipseではできないIntelliJでできるいくつかの特定のことを聞きたいと思います。

:これは主観的な質問ではなく、IDEの聖戦になることを意図したものでもありません。フレームベイトの回答に反対票を投じてください



1
私はEclipseからNetbeans、IntelliJ ruby​​Mineに行き、それぞれが前の「ステップアップ」でした。しばらく前だったので、具体的に何が見えるのかわかりません(そのため、これは答えではありません)が、最大の跳躍はrubyMineへの移行でした。方法を使用する。また、gemの問題、依存関係などを他のものよりも適切に処理するように見えました。
ジャンキー

(android開発のため)intelliJからEclipseに切り替えたいので、このタイプの質問と回答は非常に役立ちます。
クローム2013年

8
@chrome Androidが別の方法に切り替わります: developer.android.com/sdk/installing/studio.html
Daniel Alexiuc

1
私はできる限り多くの投稿を行っており、すべての回答は実際に日食で実行できることを示しています。intellijで$の価値があるように感じたいのですが、それを購入した唯一の理由は、Javascriptオートコンプリートでした。これが私が得るすべてであるならば、私はもっと安いためにウェブストームを買ったかもしれない。おそらく同じことを行うEclipseプラグインもあるでしょう。率直に言って、日食の方が一貫していると思うし、パースペクティブ機能が欠けている。
2013年

回答:


185

CTRL-クリックはどこでも機能します

クリックしたオブジェクトが定義されている場所に移動するCTRLキーを押しながらクリックすると、JavaコードのJavaクラスと変数だけでなく、Spring構成(クラス名、プロパティ、またはBean名をクリックできます)、Hibernate(プロパティ名またはクラス、または含まれているリソースをクリックできます)。Javaクラスから、SpringまたはHibernate Beanとして使用されている場所にワンクリックで移動できます。含まれているJSPまたはJSTLタグをクリックしても機能します。JavaScript変数または関数をCtrlキーを押しながらクリックすると、それが定義されている場所に移動するか、他の.jsファイルやHTMLまたはJSPのJSコードを含む複数の場所がある場合はメニューが表示されますファイル。

多くの言語のオートコンプリート

ハイバネート

HSQL式、Hibernate構成(クラス、プロパティ、DB列名を含む)、Spring構成でのオートコンプリート

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

そして、そのプロパティに注入できるBeanのリストが表示されます。

ジャワ

Javaコードでの非常にスマートなオートコンプリート:

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

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クラスのリストが表示されます。1つを選択してCtrlキーを押しながらクリックすると、定義されている場所にリダイレクトされます。

簡単な自国語ハイライト

最新バージョンには言語インジェクションがあるため、カスタムJSTLタグには通常JavaScriptが含まれており、その内部のJavaScriptが強調表示されることを宣言できます。

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

すべてのプロジェクトにわたるインデックス検索。

Javaクラスまたはメソッドの使用状況を検索を使用すると、Javaクラスだけでなく、Hibernate、Spring、JSP、およびその他の場所を含む、それが使用されている場所が検索されます。Rename Method refactoringは、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コードに関する2つの例は、Eclipseでも同じように機能します。さらに担当者がいるJavaの例だけを削除してもらえますか?
クレイグP.モトリン2009年

9
ほとんどの例は、直接またはサードパーティのプラグインを介してEclipseで利用できます。私は、Eclipseでsvn mergeに外部ツールを使用する人を知りません。spring / hibernate / javascriptエディター(およびオートコンプリート)には、サードパーティのプラグインがあります。正規表現とjsp ELに関しては、私を倒しました:)
Yoni

1
Jboss Toolsプラグインは、HibernateおよびJSF式のオートコンプリートを追加します。
ダモ

4
Eclipseのデバッグビューでは、実装の詳細ではなくコレクションの内容を表示するオプションがあります。リストとセットの場合、その内容が表示されます。マップの場合、キーと値のペアのリストが表示されます。カスタムディスプレイを設定することも可能です。
2009年

1
Eclipse 3.7(Indigo)。Spring構成でクラス名も自動補完します。
stivlo 2011

81

Eclipseではなくintellijを使用する理由は1つだけです。使いやすさです。

デバッグ、リファクタリング、オートコンプリートなど、Intellijは、一貫したキーバインディング、検索に使用できるオプションなどを使用する方がはるかに簡単です。機能的には、IntellijがEclipseに追いつくのが難しい後者には、intellijよりはるかに多くのプラグインがあり、簡単に拡張できます。


10
それはインテリジェントで高速です。これにより、多くのユーザビリティ機能が追加されます。サブクラスまたは実装クラスへのトラバース、パス内検索、使用法の検索などは非常に高速に行われます。オートコンプリートはインラインで行われ、タブだけで挿入されます。オートコンプリートもスマートで、単なる提案ではなく、IDEが名前などを考慮します。
Ravindranath Akila 2012年

IntelliJを使用する理由は1つだけではありません。使いやすさはリストのトップにもなりません。IntelliJにはEclipseよりも多くの機能があります。IntelliJのプラグインの総数は少なくなっていますが、「品質の高い」プラグインは多くなっています。したがって、賛成投票にもかかわらず、この答えは間違っています。
ソフトウェアエンジニア、

2
@EngineerDollery私はアミットは、「一つだけの理由があると述べたことから、それは「間違っている」と言うではないだろう、私は IntelliJの使用とEclipseではないが」、「一つだけの理由がありませんへの使用のIntelliJはとEclipseではありません」。
Max

54

おそらく、ができる、できないかではなく、どのように行うです。

たとえば、どちらにもプロジェクト、クラスパス、出力、構造などのドックパネルで囲まれたエディターがあります。ただし、アイデアを入力し始めると、これらすべての折りたたみが自動的にコードに集中できるようになります。日食では、これらのすべてのパネルが開いたままになり、エディター領域が非常に小さくなり、表示可能な領域全体の約1/5になります。したがって、マウスをつかんでクリックし、これらのパネルを最小化する必要があります。これを一日中行うことは、日食で非常にイライラする経験です。

まったく逆のことが、ビュー出力ウィンドウで起こります。Ideaでプログラムを実行すると、出力ウィンドウ/パネルが表示され、プログラムが最小化されていても、プログラムの出力を確認できます。日食では、もう一度マウスをつかんで出力タブを探し、クリックしてプログラムの出力を表示する必要があります。これは、出力ウィンドウ/パネルが他のすべてのウィンドウと同様に別のウィンドウであるためですが、アイデアではそれが扱われます特別な方法:「ユーザーがプログラムを実行したい場合、そのプログラムの出力を見たいと思う可能性が非常に高いです!」私が書いたときはとても自然に見えますが、この基本的なユーザーインターフェイスの概念ではEclipseは失敗します。

おそらくEclipseのこれにショートカットがあります(編集中に出力ウィンドウを自動的に非表示にし、プログラムの実行時にそれを自動表示します)。ただし、他の何十もの機能として、アイデアは少し多く、フォーラムやオンラインヘルプなどでショートカットを探す必要があります。ナチュラル"。

これは、オートコンプリート、ワードラップ、クイックドキュメントビューなど、ほとんどすべての機能で繰り返すことができます。ユーザーエクスペリエンスは、EclipseよりもIdeaの方がはるかに楽しいと思います。そして、モットーが実現します「喜んで開発する」

Eclipseはより高速な大規模プロジェクト(+300 jarおよび+4000クラス)を処理し、IntelliJ Idea 8がこれに取り組んでいると思います。

もちろん、これはすべて主観的なものです。ユーザーエクスペリエンスをどのように測定できますか?


18
日食では、control-mを押して編集ウィンドウを最小化/最大化するか、そのエディタータブをダブルクリックすることができます-これは大きな助けになります
Scott Stanchfield

うわー...どうもありがとう。日食が私にこれを知っている方法があれば非常に役に立ちます(ホットキーのチートシートを読む以外に)どうもありがとうございます。出力ウィンドウを変更する方法はありますか?
OscarRyz 2008

ALT-SHIFT-QはShow Viewウィンドウを表示します... Cはコンソール用ですALT-SHIFT-Q、Cはコンソールに移動するためのショートカットです。
Instantsoup 2009年

7
Ctrl + Shift + Lは、現在のコンテキストで使用可能なホットキーのリストを表示します。
Dan Berindei、2009

3
サブウィンドウのタイトル(任意のサブウィンドウ)をダブルクリックすると、サブウィンドウが全画面表示になります。復元のためにもう一度実行します。コンソールでパネルを最小化すると、出力が発生すると、コンソールが即座にポップアップします。
Ian

44

Idea 8.0には、ctrl+shift+space次のオートコンプリートを実行する素敵なx 2があります。

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

解決する

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

ゲッター/セッターのレベルをいくつでも。


27
かなりクールですが、2つのレベルを超えるものはコードの匂いです;)
Epaga 2009

33

「クリップボードと比較」を忘れないでください。

IntelliJでいつも使用していて、Eclipseでは同等のものがないもの。


6
また、クリップボードの履歴。
キンボールロビンソン

3
この機能は、AnyEditTools(市場で見つかる)と呼ばれるプラグインの形式でEclipseに追加できます
Yaniv

これを読むまで、クリップボードの履歴についてさえ知りませんでした。優秀な!
NodeDad 2013

私を数回救った
OscarRyz

31

(私が見つけた)Eclipseに相当するものがないIntelliJの私のお気に入りのショートカットは、「シンボルに移動」と呼ばれます。 CTRL-ALT-SHIFT-Nプロジェクト全体から入力を開始し、クラス、メソッド名、変数名などをグロブアップできます。


10
日食のctrl-shift-G
2013年

ctrl-shift-GはPaulが説明したものではなく、「ctrl + O」に似ていますが、プロジェクトのすべてのクラス、メソッド、および変数
Tano

27

新しいAndroid Studioのため、IntelliJに切り替えようとしました。しかし、私は今非常に失望しています。私はEclipseとCode Recommandersプラグインを使用しています。Eclipseが非常に優れている理由を簡単に示します。

新しいを作りたいSimpleTimeZoneSimpleTimeZone引数のないコンストラクターはありません。

Ctrl + Space Eclipseで

ここに画像の説明を入力してください

Ctrl + Space IntelliJ

ここに画像の説明を入力してください

IntelliJでは、どのようなコンストラクターSimpleTimeZoneがあるかについての情報は得られません。

EnterEclipseの後

ここに画像の説明を入力してください

以前に選択したコンストラクタに、事前定義された変数名を入力します。そして、私はすべての議論のタイプを見ることができます。コードリコマンダーを使用すると、Eclipseは現在のスコープで以前に定義された変数の型によって適切なコンストラクターを推測し、コンストラクターにこれらの変数を入力します。

EnterIntelliJの後は何も起こりません。空のコンストラクターを取得します。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でメソッド名にカーソルを合わせるだけで、その実装でポップアップが開きます
Victor

24

IntelliJには、かなり高度なコード検査があります(FindBugと同等ですが異なります)。

IntelliJを使用している場合は、FindBugsプラグインが欠けています(Eclipse / FindBugs統合は非常に優れています)。

ここにのIntelliJでサポートされているCodeInspectionsの公式のリストです

編集:最後に、IntelliJのfindbugsプラグインがあります。それはまだ少しベータ版ですが、コード検査とFindBugsの組み合わせは素晴らしいです!


そう、findbugsは実際に正直で善良なバグを実際に見つける数少ない静的コードアナライザーの1つです。:)
Epaga 2008年

コードインスペクションの具体例はありますか?どのような種類のものを検出できますか?
Epaga

検査についてのもう一つのリンク:hamletdarcy.blogspot.com/2008/04/...
ミズーリ州

8
IntelliJのコードインスペクションではさらに多くのバグが検出され、便利なクイックフィックスがあり、入力時に警告が表示され、行が修正されます。(ファイルを保存する必要はなく、コンパイルする必要もありません)これらの優れた機能により、バグをできるだけ早く修正することがより実用的になります。
Peter Lawrey、


15

私が定期的に使用する1つのことは、ブレークポイントを設定することですが、それが何をするかを制御します。(私の最後の仕事では、ほとんどの人がEclipseを使用していました。Eclipseでこれを行う方法を誰も見つけられなかったことに驚いたのを覚えています。)

たとえば、ブレークポイントを実際に停止せずに、メッセージをコンソールに記録することができます。つまり、「System.out.println(...)」でコードを散らかしてから再コンパイルする必要はありません。


2
あなたは日食の条件付きブレークポイントでこれを行うことができますが、それは少し生意気です。true
HaveAGuess

intelliJでは、より複雑なヒットカウントを設定できると思いませんか?
キンボールロビンソン

3
今ではEclipseで見つけるのが簡単です-ブレークポイントビューに条件が表示されます(使用できることがわかります)。カウントを壊し、任意のコードを入力して、System.out.println("here"); false印刷したいが壊さないようにすることができます(最後のステートメントは、壊すべきかどうかを決定するブール式です)
Scott Stanchfield

15

アイデアがはるかに簡単な方法で解決するものはたくさんあります。または同等のものはありません。

  • オートコンプリートアクション:ctrl+shift+aキーの組み合わせを覚えていなくても、キーボードからアイデアアクションを呼び出すことができます... gnome-doやWindowsでの起動について考えれば、アイデアが浮かびます。また、この機能はCamelCasingの省略形をサポートしています;)

  • シェルフ:コードの一部を簡単に切り離して、diffビューアで確認できます。

  • ローカルヒストリ:管理がはるかに簡単で、管理が簡単です。

  • SVNアノテーションと履歴:検査が簡単で、ソースファイル全体のそのような部分の履歴のみを簡単に確認することもできます。

  • 評価式やブレークポイント条件ウィンドウなど、あらゆる場所でオートコンプリート。

  • Mavenとの統合...はるかにシンプルで、十分に統合されています。

  • ループの挿入、ラップ/キャスティング、名前の変更、変数の追加など、手にかなり近いリファクタリング。

  • 非常に強力でよく整理されたものを見つけます。大きなプロジェクトでも

  • 大きなプロジェクトの複数のブランチを同時に操作するのに非常に安定している(ブランチソースによる1.5Gbの以前のバグ修正プログラムとして、ブランチソースを同時に操作する必要性があるため、その確かな機能を示した)

  • よりクリーンでシンプルなインターフェイス...

  • そして、キーボードだけで使用する方が簡単で、多くの単純な作業でマウスを使用する必要性をなくし、時間を節約して、コードにもっと集中できるようにします...

そして今、オープンソースになっています... Ideaユーザーベースは飛躍的に成長します。


2
オートコンプリートアクション= Eclipseでの迅速なアクセス。現地の歴史が日食よりもいかに簡単であるかわかりません...
スコットスタンフィールド

スコットが示したように、それはCtrl + 3です。コンテンツ式は、評価式および条件付きブレークポイントの設定時にも使用できます。言及されたリファクタリングがCtrl + 1およびCtrl + 2によって提案されたものよりどれほど手元に近いかはわかりません。残りの多くは主観的に聞こえます。
nitind 2013

14

構造検索と置換。

たとえば、次のようなものを検索します。

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

ここで、$ string $はリテラルで、$ expr $はmy.package.and.Classタイプの式であり、次に置き換えます。

  $expr$.inspect($string$);

1
実際、コード内で型キャスト/()-operator /を検索できますが、プレーンテキスト検索では事実上不可能です
Karl

13

私のタイミングはこのスレッドに関して少しずれているかもしれませんが、私はただ応答しなければなりませんでした。

私は巨大な日食ファンです-初登場以来使用しています。友人が私に(10年以上前に)プレイヤーになると言った。彼は正しかったです。

しかしながら!IntelliJの使用を開始したばかりで、チェンジリストを表示または使用していない場合場合は、プログラミングの天国を見逃しています。

変更されたファイルを追跡する機能(私の開発ブランチalaクリアケース上)は、Eclipseのプラグインで探していたものです。Intellijは、単一のコミットのすべての変更を非常に簡単に追跡します。カスタムリストを使用して、変更されたファイルを分離できます。ローカルで一意である必要がありますが、リポジトリと同期または比較するときに常にフラグが付けられる構成ファイルに使用します-チェンジリストの下にそれらを一覧表示すると、それらを監視できますが、きちんと隠して、実際の追加に集中できます私は作っている。

また、バグ追跡ソフトウェアと統合されていないSCCSのすべての変更のテキストを出力するCommit Logプラグインもあります。ログをチケットの作業履歴に貼り付けると、ファイル、そのバージョン、日付/時刻、およびブランチ/タグがキャプチャされます。それは地獄のようにクールです。

これらすべては、Eclipseのプラグイン(または将来の拡張機能)を介してサポートされる可能性があります。しかし、Intellijはこれを簡単にします。

最後に、私はこの製品に対する主流の愛、つまりキーストロークに本当に興奮しています。


私はチェンジリスト機能が本当に好きです。これはVCSに依存しないパッチ/シェルフのセットに似ており、独立して作業でき、それらを関連付けることができ、課題追跡に関連付けることもできます。ほぼラインレベルの詳細で作業しているときに変更を追跡するローカル履歴(ミニVCSなど)があるため、必要に応じてほぼいつでも戻ることができます。あなたがタスクを切り替えるときにも、すべてのIDEAは開いているファイルなど、ウィンドウの位置、新しいタスクのためのIDEの状態を記憶して復元
sylvanaarを

チェンジリストは実際にはSVN機能です。IntelliJでは、Eclipse SVNプラグインではできない場所でも、それらを表示および管理できます。
Neil Traft、2011年

12

IntelliJデバッガーには、「式の評価」と呼ばれる非常に便利な機能があり、Eclipseペンダントよりもはるかに優れています。それは完全なコード補完を備えており、一般的に「より有用」であると考えています。


8
Eclipseには、コード補完を提供する式エバリュエーターもあります。ウィンドウに移動->ビューの表示->デバッグ->表示デバッガーのブレークポイントで停止すると、その表示ビューで任意の式を評価できます。
laz

11

まあ、私にとってそれは千の小さなことです。マクロのいくつか、Eclipseでの一般的なGUIレイアウトはひどいです。Eclipseの異なるウィンドウで複数のプロジェクトを開くことができません。複数のプロジェクトを開くことはできますが、ファイルを切り替えると、ビューベースのシステムが私の周りにたくさんのことを入れ替えます。IntelliJのコードインスペクションはより良いようです。一般的な問題を修正するポップアップヘルパーは素晴らしいです。ホットバーの上にカーソルを置くことができるサイドバーのような単純な使いやすさの多くは、メソッドの実装サブクラスまたは実装しているメソッドとその場所を教えてくれます。

Eclipseを使用する必要がある場合、または誰かが使用するのを監視する場合、EclipseはIntelliJで実行できるほとんどのことを実行できるように見えますが、時間がかかり、扱いにくいです。


9

変数を導入します。(Ctrl+Alt+VWindows、Cmd+Alt+VOSX)

たとえば、メソッドを呼び出してservice.listAllPersons() Hit Ctrl+Alt+Vとを呼び出し、Enterメソッド呼び出しからの戻り値の変数が挿入されたとします。

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

入力する手間が省け、呼び出すメソッドの戻り値の型を確認する必要がありません。ジェネリックなどを使用する場合に特に便利です。

new ArrayList<String>()

[変数を導入]

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

(もちろん、ヒットする前に変数の名前を簡単に変更できますEnter


13
これはEclipseではCtrl + 2 Lです。
ミッケ

2
わかりました。知りませんでした。また、私が尋ねたEclipseユーザーも知りませんでした。この機能は長い間Eclipseの一部でしたか?
rlovtang 2009

3
かなり長い間...クイックフィックスcontrol+1(世界で最も明白なキーバインディング、ええと?)を使用している場合、IDEAの意図と同様に、現在のカーソル位置で実行できることを示唆しています。たとえば、「ローカルの割り当て」、「フィールドの割り当て」、その他のオプションが一覧表示されます。control+2, Lそれのショートカットです。
スコットスタンチフィールド2013年

日食では、を選択したctrl+2, L後も、作成した変数のタイプを右側のタイプ(デフォルト)または任意のスーパータイプに変更できます。変数のタイプは、TABで選択できます。
ガイタン14

8

IntelliJには、コードからjspxドキュメントへのインテリセンスおよびリファクタリングサポートがあります。


インテリセンスの意味を明確にしていただけませんか?Eclipseにもオートコンプリート機能がありますが、別の意味ですか?
Epaga 2008年

Eclipseは、jspxドキュメントの自動補完機能を備えていません。通常のjspではyes、jspxではno。
krosenvold

3
彼は、POJOのプロパティを参照するJSPがあり、プロパティの名前を変更すると、JSPが正しく更新されることを意味します。IntelliJのJSPサポートがEclipse / WTPを開始します!
エリクソン2008年

2
EclipseのオートコンプリートをJSP EL式で動作させることができません。JSPまたはJSPX、それは問題ではなく、単に無知です。IntelliJは、タグまたはjspファイルのように、期待どおりにtagxとjspxを処理します。
エリクソン2008年

Eclipseユーザーが嫌いなものに投票する方法を見るのは素晴らしいことです。私の見解が間違っている場合は、コメントで返信してください。日食でこれを行う方法を教えてください!
krosenvold 2008年

7

私にとって、それはIDEAのMavenサポートであり、特にバージョン9では、他の追随を許しません。プロジェクトをMavenモデルにその場で同期させることは素晴らしく、開発を快適にします。


6

IntellijにはSubversiveやSubclipseよりもはるかに優れたSVNプラグインがあり、動作します!Eclipseを使用してソースファイルをマージするのに無駄に費やした時間は、考えていません。プラグインがさらに役立つので、これはIntelliJの問題ではありません。

また、Subclipseプラグインは信頼性が低く、プラグインが他の開発者によってSVNにチェックインされたコードがないと定期的に認識しているインスタンスがありますが、CIサーバーがそれらを処理しました!


正確には、svnサポートは優れたアイデアですが、サブクリップ/サブバージョンはバグが多く、不器用で、信頼性が高くありません。同じことがgitにも当てはまります。実際には、Eclipseの適切なgit統合を覚えていません。intelliJはそれを非常にうまく処理します
Kamil Mikolajczyk

個人的には、IDEで実行できる場合でも、コマンドラインですべてのバージョン管理を実行する必要があると思います。コマンドラインでこれを行うと、後でスクリプトをbashする方法がわかるので、開発を本当にスピードアップできます。同僚がsubclipseやgitのeclipseプラグインのヘルプを求めてくることがあります。その場合は、使用を中止してコマンドラインで実行するよう指示します。
msknapp 2014年

4

VIMエミュレータ。このプラグインは、IDEAでファイルを編集する際に、ほぼ完全なvi / vim / gvimエミュレーションを提供します。次の機能がサポートされています。

  • モーションキー
  • 削除/変更
  • 挿入モードコマンド
  • マーク
  • 登録
  • VIM元に戻す/やり直し
  • ビジュアルモードコマンド
  • 一部のExコマンド
  • 一部の:setオプション
  • 検索および検索/置換用の完全なVIM正規表現
  • マクロ
  • ダイグラフ
  • コマンドライン履歴
  • 検索履歴
  • ジャンプリスト
  • VIMヘルプ

このプラグインについてのコメント http://plugins.jetbrains.net/plugin/?id=164

このプラグインのため、他のIDEに戻ることはできません。両方の長所...すごい!それは私がすべてのIDEで欠けていたものです。

同意します。IdeaVimプラグインなしでは生きていけませんが、公平を期すために、VimPlugin(vimplugin.org)という名前のEclipse用のVimプラグインがあります
Keith

3
Vwrapperは別のVim Eclipseプラグインです。そして、それはIdea Vimプラグインよりもうまく機能します(リピートキーは機能します)。ただし、Vwrapperはコマンドラインからの検索と置換を処理しません(ただし、検索はうまく機能します)。また、マクロをインタラクティブに定義することもできません。IDEではVimのサポートが不可欠であることに同意しました。それなしではEclipseやIdeaを使用しません!
ブレントファウスト

1
viableplugin.comは日食のための非常に良いです。私もintellijを使用していますが、場合によっては、intellijがエディターでハングアップしてコマンドに応答しないことがあります。
John Lemp


3

他のいくつかのこと:

  • メソッドのシグネチャを変更するときにパラメータ/例外を伝達します。コールスタックの奥深くでメソッドを更新するのに非常に便利です。
  • jdbc呼び出しへの引数として渡された文字列のSQLコード検証(および新しくバンドルされた言語インジェクションの全体)
  • インターフェースとクラス(およびそれらのメソッド)のアイコンに実装/上書きされ、スマートな実装ナビゲーション(Ctrl + Alt + ClickまたはCtrl + Alt + B)
  • EJB 2.1インターフェースとBeanクラス間のリンク(リファクタリングサポートを含む)。古いものですが、古いプロジェクトで作業する場合は非常に貴重です

2

IntelliJがEclipseで行う2つのことは、私にとって非常に貴重ではありません。

メソッドセパレーター:メソッド間の薄い灰色の線はコードを多くしますより読みやすくなります

テキストのアンチエイリアス:IDEでコードを非常に見栄えよくします


2
実際、IntelliJのアンチエイリアスはEclipseよりもはるかに悪いことがわかりました。これは、以前のIntelliJのいくつかのバージョンでした。改善されましたか?
laz

私は、アンチエイリアスを使用するよりも見栄えが良いと思うVerdanaプロポーショナルフォントを使用しています。
Peter Lawrey、

2

非常に便利な機能の1つは、Mavenリアクタープロジェクトを部分的にビルドして、必要なパーツだけが含まれるようにする機能です。

これをもう少し明確にするために、オーバーレイ技術を使用してそれらの間で共有されている多くの共通リソース(JavaScript、Spring構成ファイルなど)を含むWARファイルのコレクションのケースを検討してください。Webページ(Jettyで実行中)で作業していて、別のモジュールに保持されているオーバーレイコードの一部を変更する場合は、通常、Jettyを停止し、Mavenビルドを実行し、Jettyを再起動して、継続する。これは、Eclipseと私がこれまでに使用したほぼすべてのIDEに当てはまります。IntelliJではそうではありません。プロジェクト設定を使用して、バックグラウンドビルドに含めるモジュールのファセットを定義できます。その結果、シームレスに見えるプロセスになります。プロジェクト内のほとんどすべてのコードに変更を加え、ブラウザを更新するとすぐに使用可能になります。

とてもきちんとしていて、とても速いです。

フロントエンドをYUIのようにコーディングして、それなしでDWR / SpringMVCにバックアップすることは想像できませんでした。


2

私の回答の前文:Eclipseの使用は制限されています。WindowsとMacの両方で動作するJava IDEが必要でしたが、Macの移植は日ごとに遅くなりました。これは何年も前のことで、今では大丈夫だと思います。しかし、それが私たちがIntelliJに切り替えるきっかけになり、私たちはそれに満足しています。

答えは今ですが、まだ言及されていない大きな違いの1つは、IntelliJ / Jet Brainsの方がテクニカルサポートが優れていることです。JetBrainsに電子メールを送信し、1時間以内に最終的な回答が得られます。Eclipseの問題に対する回答を探すと、通常、「愚かな馬鹿」の回答(通常は少数の回答)と、はるかに多くの洞察に満ちた役立つ回答が返されます。しかし、実際の答えを得るには、いくつかのソートが必要です。


Eclipseはオープンソースです。質問に答えたり、バグを修正したりしても、報酬は支払われません。MyEclipseなどの商用のEclipseベースのIDEを購入して、お金のサポートを受けましょう。クイック統計:JetBrainsに報告したバグは56個で、そのうち23個はクローズされています。Eclipse 33に報告された65個のバグがクローズされました。唯一の違いは、JetBrainsがEclipseよりも少し早くバグを修正することです。
ビクター

2

入力時にIntelliJで常に使用しているものがリファクタリングされています。両方のIDEを使用して、印刷物からクラスを書き直しました(元はEclipseで書かれていました)。同じクラスをEclipseよりもIntelliJで記述する場合、キーストローク/マウスクリックを約40%少なくしました。

不完全なコードでリファクタリングをサポートするまで、Eclipseを使いたくありません。

IntelliJ 8.0 / 8.1の機能のより長いリストを次に示します [ http://www.jetbrains.com/idea/features/index.html]


2

IntelliJがEclipseよりもはるかに優れており、ポケットが空になっていることが1つあります。

ただし、私はそれを使用することを好みます。Eclipceに比べて大きな利点の1つは、ファイルシステムと同期する方法です。大きなプロジェクトと遅いコンピューターの場合(職場の環境では、PCは自宅のものよりもはるかに遅い)Eclipseは初期のインデックス作成時間が遅いにもかかわらず、IntelliJの方が速いように見える問題。

IntelliJ Communityエディションは明らかにそれを無料で使用しますが、CCエディションに含まれていない追加のリファクタリングと素敵な小さな機能がすぐに必要になります。

私の意見では、一般的にユーザーエクスペリエンスは優れていますが、コストに見合うかどうかは、各開発者が自分で答えるのが問題です。

しかし、Javaには最高3つのIDEがあり、NetBeansは常に改善されています。


3
IntelliJ Ultimate Editionは確かに無料ではありませんが、開発者として、私はIDEを1日約8〜10時間使用します。だから彼のリーズナブルな価格は欠陥だとは思わない!!
Romain Linsolas

2

データフロー分析ここで説明するように、プロシージャ間の逆方向フロー分析と順方向フロー分析。私の経験は、データフロー分析をかなりうまく行うCommunity Editionに基づいています。コードが非常に複雑な場合、いくつかのケースでは失敗しました(何もしないことを拒否)。


2

まず第一に私はintellijが大好きです。食には欠けている機能が少なくとも100あります。リファクタリング、名前の変更、移動など、すでに言及されていることに関しては、誇張では説明できない信頼性とインテリジェンスの大きさについて話しています。

しかし、intellijがeclipseで許可されていないことが1つあります。同じvmで複数のプロジェクトを同時に実行することはできません。

フロント、ミドル、コア、エージェントなどの個別のプロジェクトがあり、それらすべてが相互に対話する必要がある場合、同時に変更とデバッグを同時に行うことはできません。現在私がこれに対処している唯一の方法は、antスクリプトを使用して依存プロジェクトでjarをデプロイおよび更新するか、mavenを使用することです。

Eclipseでは、1つのide vmインスタンスで複数のプロジェクトをデバッグできます。


4
これは、EclipseがIntelliJができないことでできることで投稿されているはずです。
Neil Traft、2011年

IntelliJはこれをまったく問題なく実行します。この答えは間違っています。
ソフトウェアエンジニア、
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.