簡體   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