Emacs的Java模式:malabar,jdee,或eclim?
我想使用emacs进行java编码,但是我对用于java编码的模式感到困惑。 有jdee,看起来像ide-like; malabar,据说比jdee更加精通java 1.5构造; 和emacs-eclim,这是emacs的eclipse后端。 emacs还有很多完整的扩展,我也很困惑哪一个可以使用。 事实上,我很困惑,我推迟使用它们中的任何一个,直到我得到build议。
在emacs中,java-mode + completion的最佳select是什么? 而且,如果我决定使用上面提到的组合,会发生冲突吗?
对于那些习惯于Emacs文本操作的人来说,Eclipse看起来就像是用一只脚踩踏自行车。 来自http://www.mulgasoft.com/的Emacs +插件非常适合将Emacs键绑定到Eclipse中。
我同时使用了Eclipse和Emacs,但是如果我只做了Java开发,我可能只用Emacs +来使用Eclipse。 在Emacs上启用许多Eclipsefunction需要一些工作。
我的build议是使用Emacs> = 23。如果你在Mac上,看看AquaMacs 。 我使用JDEE作为Java插件。 这有一个与generics不兼容的严重缺点。 这并不是说它停止工作,只是很多东西不被认可。 不要使用旧的2.3.5 JDEE插件(大多数Linux发行版都附带),而是从sourceforge站点获取2.4版本。 也得到Emacs代码浏览器 (ECB); 这是一个插件,会给你像Eclipse的项目浏览器和大纲视图的东西(其他开发人员会看这个,不相信你告诉他们,这是Emacs)。 在过去的一年里,我在Windows,Mac和Linux上使用这个设置来进行商业项目。
事实上,Eclipse在Emacs方面performance不错,我经常在两者之间切换。 Eclipse有一些很好的重构工具,我曾经使用过sed,它有一个很好的debugging器接口。 你可以同时使用它们。 当我编写自己的代码时,我发现在使用其他人的代码和Emacs时使用了Eclipse — Emacs要快得多。 请注意,对于我来说,Emacs的许多价值是非Javafunction,如从本地Emacs编辑远程服务器上的Tomcatconfiguration文件,使用LaTeX编写专业文档,使用Python或Bash或MATLAB或XML开发,以及奇怪的文本操作任务(例如,将CVS文件转换为String []数组)。
我没有使用你提到的另外两个项目。 Emacs已经可以使用Eclipse编译器了,所以我不确定我是否看到了emacs-eclim项目的重点,无论如何,这个项目似乎已经奄奄一息。 Malabar项目可能是有趣的,但似乎是一个有点胡思乱想的开发人员(例如,如果你不使用Maven(为什么?),你不应该考虑malabar模式的警告“—我会告诉我的客户呢?)。
Java上的Emacs处于悲伤状态。 我希望JDEE能够恢复活力,但是现在还不清楚什么时候会发生。 网站和邮件列表提供了一些线索。
我使用带有自动完成模式支持的emacs-eclim和专门用于Java编程的java模式突出显示。 我的工作90%是在emacs中完成的,但是当我需要debugging,运行unit testing或者进行重大的重构时,我切换到了eclipse。 总而言之,这个设置对我来说非常好。
我还没有尝试JDEE多年,但我记得它是build立起来的。 我不太关心用户界面,因为它放置了很多预先安排好的窗口。 我喜欢能够在编辑缓冲区之间来回切换,通常只显示一个窗口,但在需要时可以dynamic分割和重新排列。
注意:我是一个emacs-eclim维护者,这可能会使我的判断变得exception复杂。
如果你使用Maven,那么我build议使用malabar模式。 它会自动为您设置一切,不需要像JDEE那样编辑项目文件。 我在malabar中发现的缺点是,如果你打开了很多多级模块项目,它会消耗大量的内存。
马拉巴和JDEE都会给你“真正的”完成,即只有完成才有可能。 但是,Emacs中有两个惊人的“智能猜测完成框架”。 嬉皮扩展和自动完成。
前者是伟大的(可以为你完成整个代码块,使得可以循环遍历项目中的所有if-test),但自动完成模式更好。 它会给你一个很好的智能风格的菜单,在你使用它的时候会“学习”,并且允许你定义一个文件,你可以使用各种语言提供的完成文件。