我听说有人选择了其中一种方式,并对其中一种方式发誓。

作为一个Eclipse的忠实粉丝,但没有时间尝试IntelliJ,我很有兴趣从“前Eclipse用户”IntelliJ用户那里听到一些用IntelliJ可以做而用Eclipse不能做的具体事情。

注意:这不是一个主观的问题,也不意味着变成一场IDE圣战。请为任何煽动性的答案投票。


当前回答

结构搜索和替换。

例如,搜索如下内容:

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

其中$string$是一个文字,$expr$是my.package.and.Class类型的表达式,然后替换为:

  $expr$.inspect($string$);

其他回答

Intellij有一个比subversion或Subclipse优秀得多的SVN插件,而且它是有效的!我们在使用Eclipse合并源文件上所浪费的时间是无法想象的。对于IntelliJ,这不是一个问题,因为插件可以帮助你更多。

此外,Subclipse插件也不可靠——我们经常遇到插件认为其他开发人员没有将任何代码签入SVN的情况,但确实存在——CI服务器已经处理了它们!

在我看来,其中一个优点是依赖结构矩阵: http://www.jetbrains.com/idea/features/dependency_analysis.html#link0

在Lattix的网站上(一个独立的产品)有一个关于DSM使用和好处的很好的介绍: http://www.lattix.com/files/dl/slides/s.php?directory=4tour

IntelliJ具有从代码到jspx文档的智能感知和重构支持。

回答的序言:我对Eclipse的使用是有限的。我们需要一个Java IDE在Windows和Mac上都能运行,而Mac的移植速度越来越慢。这是几年前的事了,我相信现在没问题了。但这正是我们转向IntelliJ的原因,我们对它很满意。

现在是我的答案:我还没有看到提到的一个很大的区别是,IntelliJ/Jet Brains的技术支持更好。我们向JetBrains发送电子邮件,并在不到一个小时内得到明确的答复。寻找Eclipse问题的答案通常会得到“你这个愚蠢的白痴”的答案(通常是一小部分回答),同时还有大量有见解的、有帮助的回答。但要得到真正的答案还需要一些梳理。

我没有用IntellijIdea编写过很多代码,但是在IntellijIdea中,你可以看到括号(if, try/catch, cycle等)之间的代码块在哪里开始,在哪里结束。

在Eclipse中(我在Eclipse 3.2中编码),您只能手动识别块。