繁体   English   中英

Emacs java-mode:malabar,jdee还是eclim?

[英]Emacs java-mode: malabar, jdee, or eclim?

我想使用emacs进行java编码,但我对用于java编码的模式感到困惑。 有jdee,看起来像ide; malabar,据说比jdee更精通java 1.5构造; 和emacs-eclim,这是emacs的eclipse后端。 emacs还有大量的完成扩展,我也对使用哪一个感到困惑。 事实上,我很困惑,我推迟使用其中任何一个,直到我得到建议。

在emacs中,当前最好的java模式+完成选项是什么? 而且,如果我决定使用上面提到的组合,会发生冲突吗?

对于那些习惯于使用Emacs文本操作功能的人来说,Eclipse看起来就像是用一只脚踩踏自行车。 来自http://www.mulgasoft.com/的Emacs +插件非常适合将Emacs键绑定到Eclipse中。

我经常使用Eclipse和Emacs,但如果我只进行Java开发,我可能只使用Eclipse和Emacs +。 在Emacs上启用许多Eclipse功能需要一些工作。

我的建议是使用Emacs> = 23.如果你在Mac上,请查看AquaMacs 我使用JDEE作为Java插件。 这具有不能很好地使用泛型的严重缺点。 并不是它停止工作,只是很多东西都没有被识别出来。 不要使用旧的2.3.5 JDEE插件(大多数Linux发行版附带),但从sourceforge站点获取2.4版本。 还可以获得Emacs代码浏览器 (ECB); 这是一个插件,可以为你提供Eclipse的Project Explorer和Outline视图(其他开发人员会看到这个并且在告诉他们它是Emacs时不相信你)。 在过去的一年里,我已经将这个设置用于Windows,Mac和Linux上的商业项目。

事实上,Eclipse与Emacs相处得非常好,我经常在两者之间切换。 Eclipse有一些很好的重构工具,我以前使用sed,它有一个很好的调试器接口。 您可以同时使用它们。 当我编写自己的代码时,我发现在使用其他人的代码和Emacs时使用Eclipse --- Emacs要快得多。 请注意,对我来说,Emacs的很多价值都是非Java功能,比如从我的本地Emacs编辑远程服务器上的Tomcat配置文件,用LaTeX编写专业文档,用Python或Bash或MATLAB或XML开发,以及奇数文本操作任务(例如,将CVS文件转换为String []数组)。

我没有使用你提到的其他两个项目。 可以将Eclipse编译器与Emacs一起使用,所以我不确定我是否看到了emacs-eclim项目的重点,无论如何这似乎都是奄奄一息。 马拉巴尔项目可能很有趣,但似乎是一个有点胡思乱想的开发人员的产物(例如, 警告 “如果你不使用Maven(为什么?)你不应该考虑malabar模式” - 我会告诉我的客户那?)。

Emacs上的Java处于悲伤状态。 我希望JDEE能够重新焕发活力,但目前还不清楚何时或是否会发生这种情况。 网站和邮件列表提供的线索很少。

我使用emacs-eclim和自动完成模式支持以及专门用于Java编程的java模式突出显示。 我的90%的工作都是在emacs中完成的,但是当我需要调试,运行单元测试或进行重大重构时,我会切换到eclipse。 总而言之,这个设置对我来说非常有用。

我多年没有尝试过JDEE,但我记得设置它是非常好的。 我不太关心用户界面,因为它放置了许多被锁定到位的预先安排的窗口。 我喜欢能够在编辑缓冲区之间来回切换,通常只显示一个窗口,但在必要时动态分割和重新排列。

注意:我是一名emacs-eclim维护者,这可能使我的判断更加突出。

如果您正在使用Maven,那么我建议使用malabar-mode。 它将自动为您设置所有内容,无需编辑项目文件,就像您必须使用JDEE一样。 我在malabar中发现的缺点是,如果你打开了很多多级模块项目,它会占用大量内存。

马拉巴尔和JDEE都会给你“真正的”完成,即只有可能的完成。 但是,Emacs中有两个令人惊叹的“智能猜测完成框架”。 嬉皮 - 扩展和自动完成。

前者很棒(可以为您完成整个代码块,使得可以循环遍历项目中的所有if-tests),但自动完成模式甚至更好。 它会为您提供一个很好的智能风格菜单,在您使用它时会“学习”,并允许您定义一个文件,其中包含您希望以各种语言提供的完成。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM