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

ave*_*ael 36 java emacs

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

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

Gle*_*enn 17

对于那些习惯于使用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能够焕发活力,但目前还不清楚何时或是否会发生这种情况.网站和邮件列表提供的线索很少.

  • 实际上,当与非maven项目一起使用时,malabar-mode不起作用.如果没有合适的POM文件,它的代码完成功能将无法工作.这立刻让我失望了.我尝试过将eclim与vim结合使用,它确实将Eclipse的一些最佳功能带入了vim,尤其是代码完成.但是,我试图避免在emacs中使用eclim,因为我只是主要用于代码完成,我认为emacs可以处理这种完成.我还是不知道怎么回事. (2认同)

fre*_*d-o 14

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

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

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


sky*_*ert 7

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

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

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