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

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

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


当前回答

一个非常有用的特性是能够部分构建Maven反应堆项目,以便只包括您需要的部分。

To make this a little clearer, consider the case of a collection of WAR files with a lot of common resources (e.g. JavaScript, Spring config files etc) being shared between them using the overlay technique. If you are working on some web page (running in Jetty) and want to change some of the overlay code that is held in a separate module then you'd normally expect to have to stop Jetty, run the Maven build, start Jetty again and continue. This is the case with Eclipse and just about every other IDE I've worked with. Not so in IntelliJ. Using the project settings you can define which facet of which module you would like to be included in a background build. Consequently you end up with a process that appears seamless. You make a change to pretty much any code in the project and instantly it is available after you refresh the browser.

非常简洁,而且非常快。

我无法想象在没有它的情况下,在像YUI这样的东西中编写一个返回到DWR/SpringMVC的前端。

其他回答

Idea 8.0有可爱的ctrl+shift+space x 2,可以完成以下自动完成:

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

解析为

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

通过任何级别的getter /setter。

在IntelliJ中,您可以通过“最后编辑位置”跳过最后编辑位置的历史。Eclipse也有类似的特性,但是Eclipse只返回到编辑位置的一个级别。

拥有历史记录而不仅仅是Eclipse提供的一个级别是一个很好的生产力特性:它充当了一种自动书签的形式,因为您经常希望跳转回您进行更改的地方。我每天都要使用这个功能几次,当我被要求使用Eclipse来做某些事情时,我感到没有这个功能的痛苦。

如果你把光标放在一个方法上,然后按CTRL+SHIFT+I将弹出方法实现。如果方法是一个接口方法,那么你可以使用上下箭头来循环实现:

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

|的位置(例如)您的光标所在的位置。

多得多的重构。

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