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

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

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


当前回答

就这篇文章而言,我的时机可能有点不对,但我必须做出回应。

我是一个超级日食迷——从它第一次出现就开始使用它。一个朋友告诉我(10多年前),这将是一个播放器。他是对的。

然而!我刚刚开始使用IntelliJ,如果您还没有见过或使用过变更列表,那么您就错过了编程的天堂。

The ability to track my changed files (on my development branch ala clearcase) was something I was looking for in a plugin for eclipse. Intellij tracks all of your changes for a single commit, extremely easy. You can isolate changed files with custom lists. I use that for configuration files that must be unique locally, but are constantly flagged when I sync or compare against the repository -- listing them under a changelist, I can monitor them, but neatly tuck them away so I can focus on the real additions I am making.

此外,还有一个提交日志插件,可以输出那些没有与错误跟踪软件集成的SCCS的所有更改的文本。将日志粘贴到票据的工作历史记录中可以捕获文件、它们的版本、日期/时间和分支/标记。太酷了。

我打赌,所有这些都可以通过eclipse中的插件(或未来的增强)来支持;然而,Intellij使这变得轻而易举。

最后,我真的很高兴主流对这款产品的喜爱——按键,所以它很痛苦,但很有趣。

其他回答

我经常使用的一件事是设置断点,然后控制它的功能。(在我的上一份工作中,大多数人都使用Eclipse……我记得我很惊讶,没有人能在Eclipse中找到如何做到这一点。)

例如,可以让断点实际上不停止,而只是将消息记录到控制台。这意味着,我不必用“System.out.println(…)”乱写代码,然后重新编译。

IntelliJ有一些相当高级的代码检查(与FindBugs类似但又不同)。

虽然我在使用IntelliJ时非常想念FindBugs插件(Eclipse/FindBugs集成非常酷)。

下面是IntelliJ支持的代码检查的官方列表

编辑:最后,IntelliJ有一个findbugs-plugin。它仍处于测试阶段,但代码检查和FindBugs的组合非常棒!

引入变量。(Windows下按Ctrl+Alt+V, OSX下按Cmd+Alt+V)

假设调用service。listallpersons()方法 按Ctrl+Alt+V并回车,方法调用的返回值的变量被插入:

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

节省输入,并且不必检查所调用方法的返回类型。在使用泛型时尤其有用,例如:

new ArrayList<String>()

(引入变量)

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

(当然,你可以在按Enter键之前轻松更改变量的名称)

VIM模拟器。这个插件在IDEA中编辑文件时提供了几乎完整的vi/vim/gvim仿真。 支持以下功能: 运动键 删除/修改 插入模式命令 标志着 寄存器 VIM撤销/重做 可视模式命令 一些Ex命令 Some:设置选项 用于搜索和搜索/替换的完整VIM正则表达式 宏 测量 命令行历史记录 搜索历史记录 跳转列表 VIM提供帮助

关于这个插件的一些评论来自http://plugins.jetbrains.net/plugin/?id=164

I can't see ever going back to any other ide because of this plugin.. Best of both worlds... Awesome!. that's what i was lacking in all IDEs.

抱歉,如果这已经涵盖了,但简单地有“变化”标签在那里,我可以看到我的本地变化,传入的变化,远程变化只是简单的东西,我不能没有。在Eclipse中,我找不到这样的特性!

另外,像中间点击绑定到“开放声明”这样简单的事情是一个很好的UI添加——我也看不到在Eclipse中实现的东西。

在我工作的地方只有Eclipse,但我正在认真考虑购买个人的Idea许可证....