我听说有人选择了其中一种方式,并对其中一种方式发誓。
作为一个Eclipse的忠实粉丝,但没有时间尝试IntelliJ,我很有兴趣从“前Eclipse用户”IntelliJ用户那里听到一些用IntelliJ可以做而用Eclipse不能做的具体事情。
注意:这不是一个主观的问题,也不意味着变成一场IDE圣战。请为任何煽动性的答案投票。
我听说有人选择了其中一种方式,并对其中一种方式发誓。
作为一个Eclipse的忠实粉丝,但没有时间尝试IntelliJ,我很有兴趣从“前Eclipse用户”IntelliJ用户那里听到一些用IntelliJ可以做而用Eclipse不能做的具体事情。
注意:这不是一个主观的问题,也不意味着变成一场IDE圣战。请为任何煽动性的答案投票。
当前回答
有一件事IntelliJ做得比Eclipse好得多,那就是清空你的口袋!
然而,我确实更喜欢使用它,它比Eclipse有一个很大的优势,就是它与文件系统同步的方式,对于大项目和慢速的计算机(是的,在工作环境中,PC的速度比我们家里的慢得多),Eclipse似乎与IntelliJ相比似乎更快,尽管初始索引时间较慢。
IntelliJ社区版显然可以免费使用它,但你很快就会想要那些额外的重构和CC版不包含的小东西。
在我看来,这通常是一个更好的用户体验,但是否值得这个成本是每个开发者自己要回答的问题。
但是让我们感激我们现在有三个很棒的Java ide, NetBeans一直在变得更好。
其他回答
有很多事情是idea用更简单的方法解决的,或者没有等价的方法:
Autocomplete actions: Doing ctrl+shift+a you can call any idea action from the keyboard without remembering its key combination... Think about gnome-do or launchy in windows, and you've got the idea! Also, this feature supports CamelCasing abbreviations ;) Shelf: Lets you keep easily some pieces of code apart, and then review them through the diff viewer. Local history: It's far better managed, and simpler. SVN annotations and history: simpler to inspect, and also you can easily see the history only for such a part of a whole source file. Autocomplete everywhere, such as the evaluate expression and breakpoint condition windows. Maven integration... much, much simpler, and well integrated. Refactors much closer to the hand, such as loops insertion, wrapping/casting, renaming, and add variables. Find much powerful and well organized. Even in big projects Much stable to work with several branches of a big project at the same time (as a former bugfixer of 1.5Gb by branch sources, and the need to working in them simultaneously, idea shown its rock-solid capabilities) Cleaner and simpler interface... And, simpler to use only with the keyboard, letting apart the need of using the mouse for lots of simple taks, saving you time and giving you more focus on the code... where it matters!
现在,作为开源的…Idea的用户群将呈指数级增长。
结构搜索和替换。
例如,搜索如下内容:
System.out.println($string$ + $expr$);
其中$string$是一个文字,$expr$是my.package.and.Class类型的表达式,然后替换为:
$expr$.inspect($string$);
IntelliJ具有从代码到jspx文档的智能感知和重构支持。
数据流分析:如本文所述,过程间的反向流分析和正向流分析。我的经验是基于Community Edition,它在数据流分析方面做得相当好。当代码非常复杂时,它在少数情况下会失败(拒绝做任何事情)。
目前,它是唯一一个可以将标签撕下到另一个窗口。当你有更多的屏幕时很方便。