在 Eclipse 中可能发生在 IntelliJ 中不可能的事情? [关闭]
Posted
技术标签:
【中文标题】在 Eclipse 中可能发生在 IntelliJ 中不可能的事情? [关闭]【英文标题】:Things possible in Eclipse that aren’t possible in IntelliJ? [closed] 【发布时间】:2010-10-02 10:53:28 【问题描述】:我听过一些人发誓。两者都是功能齐全的优秀 IDE。但每个人的优势都略有不同。这并不意味着变成一场神圣的 IDE 战争。请对任何火焰诱饵答案投反对票。谢谢。
这是this question的类比。
【问题讨论】:
嗯...,“个人开发者”免费获得 IntelliJ 吗? ;) :) 这是一个重要的区别。 @IgorK 请尝试使用社区版进行企业开发(提示,你不能)。 @Pascal Thivent 我的经验是 IntelliJ 社区版相当于 Eclipse,无需购买 MyEclipse 之类的插件。默认情况下,Eclipse 似乎并没有处理 JSP 和其他 Java EE 技术,除了非常基本的东西。 关于features of IntelliJ not available in Eclipse 的对称问题仍然悬而未决。请也重新打开这个。 【参考方案1】:我在 IDEA 中最喜欢的小烦恼(也是 Eclipse 中最喜欢的小功能)是在键入左大括号(例如“”)或分号时字符的定位。您必须在 Eclipse 中启用它(Window/Preferences/Java/Editor/Typing:“自动在正确的位置插入:分号,大括号”)
这样只需提前输入(“|”是插入符号的位置)
while(|
结果(还没有魔法)
while(|)
现在输入 true,结果是
while(true) |
如此简单,却如此强大。
另外,在(例如)
System.out.println("Hello world")
在该行中使用插入符号anywhere,键入分号将自动在行尾键入它。退格更正,就像您最喜欢的文字处理器中通常的自动更正一样。
无价。在第一次尝试时,我物理上不再能够在正确的位置键入分号:)
【讨论】:
您想在 IDEA 中尝试 CTRL-SHIFT-ENTER。在这两种情况下它都会“完成”这条线 谢谢,这对我来说是个新闻——尽管我无法掌握想法使用的所有组合键。 ';'和 '' so 更直观。下周我将开始构思并努力记住... ;-) 如果要插入怎么办;在字符串中? 如果要插入;在字符串中只需按退格键,如在 OpenOffice、Word 或其他中。这将恢复自动更正。我的绝大多数分号(相差几个数量级)以一行结尾,所以我对此非常满意。 @ckeh:在 Eclipse 中,它不是快捷方式,而是您要键入的字符。只是位置得到了纠正。【参考方案2】:Eclipse 的增量编译器允许您在不相关的代码中运行单元测试even while there are compiler errors。 IntelliJ 依赖 javac,除非所有代码都有效,否则它不会发出字节码。
【讨论】:
IntelliJ 提供了使用 Eclipse 编译器或 AJC 的选项已经有一段时间了。 (设置 > 编译器 > Java 编译器 > 使用编译器下拉菜单) 这是否意味着即使是 Idea 人也知道 Eclipse 在编译方面更好? 哇,我非常想念 IDEA 中的这个功能,但它就在这里。他们甚至不耻于将其命名为“Eclipse 编译器”,脱帽致敬 :)【参考方案3】:由于新的 android Studio,我尝试切换到 IntelliJ。但我现在非常失望。我正在使用带有 Code Recommenders 插件的 Eclipse。下面是一个为什么 Eclipse 如此出色的简单示例:
我想创建一个新的SimpleTimeZone
。 SimpleTimeZone
没有零参数的构造函数。
Eclipse 中的 Ctrl + 空格
IntelliJ 中的 Ctrl + 空格
在 IntelliJ 中,我没有得到任何信息 SimpleTimeZone
有什么样的构造函数。
进入Eclipse后
我得到了之前选择的构造函数,其中填充了预定义的变量名。我可以看到每个参数的类型。使用 Code Recommenders Eclipse 通过当前范围内先前定义的变量类型猜测正确的构造函数,并用这些变量填充构造函数。
在 IntelliJ 中输入后没有任何反应。我得到一个空的构造函数。我必须按 Ctrl + P 才能看到预期的参数。
或尝试一些简单的事情。类型
syso<Ctrl+Space>
Eclipse:System.out.println()
IntelliJ:syso
【讨论】:
Intellij: sout据我所知,在 IntelliJ 中,除了 Eclipse 出色的 Mylyn 任务插件,别无选择。
【讨论】:
在 IntelliJ 9 及更高版本中有任务管理:blogs.jetbrains.com/idea/2009/05/… 但它可能与 Mylyn 不完全相同......这可能是坏的......或好的 :) 取决于你需要什么. 新的任务管理确实不错。这个答案不再有效:) @SamBeran 恐怕答案仍然有效。定期使用 Eclipse 和 IntelliJ IDEA 我可以说 IntelliJ IDEA 中的任务管理与 Mylyn 相去甚远,不幸的是。 @SamBeran 请纠正我。然而,似乎 IJ 的任务上下文的整个概念就是要打开哪些选项卡。它似乎没有过滤项目侧栏中显示的文件,或者没有任何其他使 Mylyn 有用的上下文过滤。我希望我是错的,因为我想使用 IJ 出于其他原因。 我没有在 IDEA 中使用它的任务,只是查看了它们,看起来和 Mylyn 一样好。我撤回我之前的声明,并接受其他评论者的信息而不是我的。【参考方案5】:从 Eclipse 3.3 开始(但可以在使用 plugin 之前完成),您可以在保存 Java 文件的同时自动执行操作:
组织导入 格式化源代码 其他一些操作(例如添加注释、删除不必要的强制转换...)这可以在 Preferences > Java > Editor > Save actions 中进行配置。
【讨论】:
IntelliJ 可以设置为动态优化导入,动态添加明确的导入。保存格式不同 - 在 IntelliJ 中它是“提交时”:请参阅 ***.com/questions/3707316/…【参考方案6】:Eclipse 平台的开放性使插件编写者社区蓬勃发展。有大量插件可用于各种任务。
【讨论】:
问题是关于 Eclipse 中可能发生的事情在 IDEA 中不可能发生的事情。你的意思是IDEA不能写插件吗? 我的意思是 Eclipse 的插件比 IDEA 的多。 我确实将插件数量视为直接收益。在 Eclipse 中作为插件提供的一些功能(如更好的 JS 支持)嵌入在 IDEA 中。 检查其中一个 IDE 中是否有您需要的功能在另一个 IDE 中没有 - 无论是否是插件,这可能会很有用。如果没有具体示例,数量可能意味着有多个重复项,而不是缺少实际任务。此外,正如 Pavel 所指出的,一些功能嵌入在 IntelliJ 中(作为“捆绑”插件),因此无需单独获取插件。我怀疑 Ecplise 也是如此。 plugins.intellij.net【参考方案7】:我最喜欢的 Eclipse 功能:
AspectJ 集成,包括方面和代码之间的导航、显示方面应用位置的注释标记、交叉引用视图、显示方面类型的通用打开类型对话框(最近添加) OSGi 工具(又名 PDE)、编辑和优化 OSGI 清单、特定于 OSGi 的重构和声明式服务编辑器(目前正在开发中)【讨论】:
【参考方案8】:我不知道如何在 Intellij 中自动添加 javadoc,而在 Eclipse 中它只是:Shift-Alt-j
我不喜欢 IntelliJ 的地方(来自 Eclipse 开发人员)
Tab 键不会缩进到正确的位置,只需按一下 Tab。
多项目是第一个...但是很多人之前已经介绍过,所以我将离开它。
窗口拆分。在 Eclipse 中,您只需将窗口拖到任何您想要的位置,它就会到那里。
字体很烂。我改成了我能找到的下一个最好的:Liberation Mono,14 号。(设置>编辑器>颜色和字体>字体)
对 XML 的突出显示很糟糕...删除了粗体。
将编辑器窗口与项目导航器中选择的文件同步。我不能默认做到这一点,我每次都必须按下按钮???找到了:
在项目导航器中双击有时无法打开文件。有时甚至连三次点击都不会这样做。只需单击四下即可打开它! ** 这里有一个答案...只是双击速度太快了:关于IDEA中的双击,双击打开文件很难的原因是Java程序,例如。 IDEA 从 X11 资源中读取双击速度。如果未明确设置,则默认为 200 毫秒,速度快如闪电。 为了有一个更理智的阈值创建 ~/.Xresources 并添加: *.multiClickSpeed: 400
无法弄清楚如何获得 Ctrl-1 在 Eclipse 中给出的建议:“将语句分配给局部变量”。我一直在使用它。
** 是的!这是引入变量重构。默认情况下,选择一些文本,然后按 Ctrl + Alt + V。如果表达式不完整或无效,IntelliJ 仍然会很好地猜测您的意思并尝试为您修复它。
制表符没有立即纠正位置。
无法正确自动完成 ** Ctrl-Shift-Space 帮助...
热代码重新运行。在 Eclipse 中,我可以在调试器中修改一个方法,并重新加载框架。 ** 右击:丢帧
双击变量以突出显示它,不会突出显示该变量的其他实例。
不推荐使用的方法不会被删除。
可以在设置菜单中正确搜索。它过滤掉的都是顶部 级别名称而不是菜单本身内的所有字符串。 找不到在哪里设置我的 jdk!
不会即时编译,只有当我点击“调试”时才会编译。
没有'右键单击类并选择新建> JUnit'功能。
调试时,窗口出现在底部,不能移动到哪里 我想要它。 ** 当它折叠到你想要的任何一侧时,拖动小图标 它会从中弹出。
我喜欢的事情:
粘贴历史很好:Ctrl-Shift-V
只需单击调试/运行图标即可实际运行最后一个配置,eclipse 并没有那么聪明(或者它太聪明???),而且我不喜欢它的方式。
自动完成功能非常好。
只需单击一次即可添加断点
代码折叠/展开看起来更好。
Ctrl-Shift--(减号)折叠/折叠所有。
“列模式”可以打开它“编辑-列模式”或使用alt + shift + insert
【讨论】:
【参考方案9】:只有 Eclipse 允许您在调试器中单步执行 ant 构建。
【讨论】:
似乎不再是差异化因素:plugins.intellij.net/plugin/?idea&id=4526【参考方案10】:Idea 没有 drools 插件,外部编辑器(如 excel)很难集成。
【讨论】:
【参考方案11】:在eclipse中你可以最大化编辑器,在IntelliJ中你可以点击escape,这是类似的功能。但是在eclipse中你可以恢复。 IntelliJ 中没有等效的“未最大化”,这更令人沮丧。
【讨论】:
用于最大化编辑器的相同快捷方式也可用于之后“取消最大化”编辑器。 这是不正确的。 crtl+shift+F12 在最大化编辑器和之前的状态之间切换(我相信 Ruben 说的是,但更准确地说是使用快捷方式)。 菜单:窗口 -> 隐藏所有 _W_indows(或恢复 _W_indows),具体取决于您所处的状态。 我应该注意:我指的是 IntelliJ 菜单和快捷方式。 ;) 我指的是双击标签。但是看起来这是在 IntelliJ 10 中实现的。【参考方案12】:我发现(同时使用两者)最大的烦恼是在 Eclipse 中我可以创建 Ant Launch 任务。这些任务允许我使用不同的属性/参数集在同一个构建文件中运行相同的 ant 任务,而无需每次都进行编辑。
在 IDEA 中,属性是在整个构建文件中设置的。因此,您不仅不能在不编辑的情况下运行具有不同属性的相同 ant 任务,而且您不能运行具有不同属性的不同 ant 任务,除非它们位于不同的构建文件中。
【讨论】:
您可以将同一个 Ant 构建文件多次添加到 IntelliJ 的“Ant Build”窗口,并为同一文件的这些不同实例设置不同的属性(alt+enter)。例如,我创建了一个简单的 ant 构建文件,其目标只是回显一个属性,然后在一个实例中将该属性设置为“Hi”,在另一个实例中设置为“Hello”。运行相同的“问候”目标会根据运行的实例给出不同的结果。这会涵盖你提到的场景吗? 它可能!我不再在提供 IDEA 的地方,所以我默认使用 Eclipse,但我会记住这一点,谢谢!【参考方案13】:我在博客中总结了我的comparison of Eclipse 3.6 and IntelliJ 10.5(与 Eclipse 相比,我更关注我在 II 中喜欢或错过的内容)
【讨论】:
不错的总结。我现在已经使用 IntelliJ 大约 3 年了,我永远不会回到 Eclipse。我认为您对性能的担忧很容易通过对您的工作流程进行轻微调整来解决。在 Eclipse 中,您必须经常单击 ctrl+S 才能保存文件并强制编译。在 IntelliJ 中,您永远不需要保存文件,但您确实需要强制编译。只需将您单击 ctrl+S 的习惯替换为 ctrl+f9,即可完成项目。您会发现工作流程和速度几乎相当,而 IntelliJ 可能会快一点。 SO 不适用于链接共享,您应该引用一些观点。【参考方案14】:总的来说,我在这两种 IDE 中都有很好的工作经验,所以它们都有很多很好的功能。在 IDEA 9_0_3 中,我在使用 SVN 时遇到了一个奇怪的问题。我可以在存储库视图中看到更改的历史记录,但它没有显示任何令人沮丧的传入更改。另一种方法是更新带来最新但没有任何选择的目录..它得到了所有
【讨论】:
【参考方案15】:一个有效的颠覆集成,看看bugs of the idea subversion plugin。
【讨论】:
比subclipse.tigris.org/issues/…多了2个问题 Subversion 集成在 IntelliJ 7.0.5 中对我来说似乎工作得很好。我没有发现任何问题。 Subversion 集成在 7.0.x 和 8.x 中也适用于我。另一方面,在 7.x 中使用非常大的 CVS 存储库对我来说是个问题。 我使用 eclipse、idea 7 和 idea 8。idea 的 subversion 插件有一个非常奇怪的行为,导致部分提交(因为 lok´cal 更改缓存不是最新的),显示 [传入历史记录中的部分]前缀。 移动包之类的重构通常会导致意外更改,例如创建目标目录以及移动或更糟糕的是一个一个替换所有文件。这使得以后的合并比使用命令行更难。此外,idea 的内置合并功能通常会产生垃圾。【参考方案16】:在 Eclipse 中,创建一个 10x10 的编辑区域 (cols/row) 并同时查看所有其他窗口可能会让人烦恼。
在 IntelliJ 中这是不可能的,因为 'ESC' 键会将它们全部关闭。
好的,好的,对不起,我必须这样做,现在就开枪
【讨论】:
你可以在Eclipse中双击编辑器区域的标题栏,它会最大化它——将其他窗口发送到侧面的弹出文件夹中。 如果您更喜欢键盘快捷键,在 Eclipse 中使用 ctrl+M 也应该完成与双击相同的操作。以上是关于在 Eclipse 中可能发生在 IntelliJ 中不可能的事情? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
有啥方法可以在 Eclipse 中获得类似 IntelliJ 的自动完成功能?