ความเหมาะสมของ Emacs ในฐานะ IDE การพัฒนา Java


22

ฉันพยายามอีกครั้งเพื่อเปลี่ยนเป็น Emacs ฉันเป็นผู้ใช้ Vi ที่เหมาะสม แต่ได้ใช้ Eclipse สำหรับงานพัฒนาส่วนใหญ่ของฉันมานานกว่า 10 ปีที่ผ่านมา

ดังนั้นฉันจึงได้อ่านและคิดว่า JDEE เป็นวิธีที่จะไป - มีการกำหนดค่า แต่ยังมีคำถามพื้นฐาน

แต่หลังจากทำการวิจัยเพิ่มเติม - ดูเหมือนว่า JDEE อาจไม่ได้รับการดูแลอย่างดีและบางทีสิ่งที่ฉันต้องการก็คือ CEDET?

ดังนั้นคำถาม:

  1. Emacs สามารถใช้แทน Eclipse ของฉันได้หรือไม่? ฉันจัดระเบียบงานสร้างของฉันโดยใช้ Maven หรือไม่
  2. หาก "1" คือใช่ฉันควรเริ่มด้วยชุดเครื่องมือใด: CEDET JDEE?

ขอบคุณ


4
Emacs เป็นตัวแก้ไขที่ยอดเยี่ยม แต่ไม่ใช่ Java IDE ที่ยอดเยี่ยม คุณจะผิดหวัง
Thorbjørn Ravn Andersen

คำตอบ:


20

ฉันจะหัวโบราณและพูดว่าไม่ Emacs ไม่ใช่แบบแทนที่สำหรับ Eclipse (โดยเฉพาะอย่างยิ่งไม่ออกนอกกรอบ) อย่างไรก็ตามนั่นไม่ได้หมายความว่ามันไม่เหมาะสำหรับการพัฒนา Java

เนื่องจากคุณคุ้นเคยกับ Eclipse แล้วฉันขอแนะนำให้คุณดูeclim:

Eclim มอบความสามารถในการเข้าถึงคุณลักษณะการแก้ไขโค้ด Eclipse (การเติมโค้ด, การค้นหา, การตรวจสอบความถูกต้องของรหัสและอื่น ๆ อีกมากมาย ) ผ่านทางบรรทัดคำสั่งหรือการเชื่อมต่อเครือข่ายท้องถิ่น

Eclim สนับสนุน Maven มันทำงานร่วมกับ Emacs emacs-eclimผ่านแพคเกจที่เรียกว่า ทำตามขั้นตอนที่อธิบายไว้ในemacs-eclim READMEเพื่อติดตั้ง1 :

  1. ดาวน์โหลดและติดตั้ง eclim

  2. ติดตั้งemacs-eclim:

    • หากคุณยังไม่ได้เพิ่ม MELPA ไปที่package-archives:

      (add-to-list 'package-archives '("melpa" . "http://melpa.org/packages/") t)

    • ประเมินโค้ดด้านบน (โดยกดC-x C-eด้วยตำแหน่งที่อยู่หลัง paren การปิดล่าสุด) หรือรีสตาร์ท Emacs

    • ติดตั้งโดยการทำemacs-eclimM-x package-install RET emacs-eclim RET
  3. เพิ่มรหัสต่อไปนี้ไปยังไฟล์ init ของคุณ:

(require 'eclim)
(global-eclim-mode)

1คำแนะนำที่ปรับเปลี่ยนให้รวมวิธีการติดตั้งเพียงวิธีเดียวเท่านั้น


1
อาจจะขอบคุณมากสำหรับคำตอบ - ฉันคุ้นเคยกับ eclim แต่ฉันพยายามที่จะหนีจากสุริยุปราคาเพราะมันขยายตัว - แม้ว่าฉันจะชื่นชมว่านี่เป็นขั้นตอนการเปลี่ยนแปลงที่ดี
user1172468

1
ดังนั้นคำถาม: พูดว่าถ้าไม่มี eclim อยู่คำแนะนำของคุณคืออะไร?
user1172468

เรียนรู้ที่จะอยู่ได้โดยไม่ต้องทำการปรับสภาพใหม่
wasamasa

2
@ user1172468 มันขึ้นอยู่กับ - คุณต้องการคุณสมบัติประเภทใด? การแทนที่แบบเต็มรูปแบบสำหรับ Eclipse จะมีบางส่วนของ bloat หากคุณต้องการหลีกหนีจากสิ่งที่ดีที่สุดของคุณคือหารายการของกรณีการใช้งานเฉพาะและตรวจสอบว่า (a) Emacs สนับสนุนพวกเขาออกจากกล่องและ / หรือ (b) มีแพ็คเกจเสริมที่ให้ ฟังก์ชั่นที่เกี่ยวข้อง เราสามารถช่วยคุณในเรื่องนี้ได้ แต่ถ้าคุณปล่อยให้เราทำตามคุณสมบัติที่คุณต้องมี :)
itsjeyd

1
ควรสังเกตว่าด้วย Eclim คุณสามารถเรียกใช้ Eclipse โดยไม่ต้องใช้สิ่ง GUI ซึ่งจะใช้ทรัพยากรน้อยลง อีกสิ่งหนึ่งเกี่ยวกับ Eclim คือการเติมข้อความอัตโนมัติไม่สามารถใช้งานได้ (ต้องบันทึกบัฟเฟอร์ก่อนที่จะขอให้เสร็จสมบูรณ์ + ล็อคตัวแก้ไขขณะรอการตอบกลับ)
wvxvw

11

Emacs / eclimเป็น Java IDE หลักของฉันในช่วงสองสามปีที่ผ่านมาและบอกว่ามันใช้งานได้ดีแม้จะมีรหัสฐานขนาดใหญ่ (พื้นที่ทำงาน emacs / eclim ปัจจุบันของฉันมีไฟล์ Java มากกว่า 4,000 ไฟล์) มันเป็นความจริงที่ emacs-eclim ต้องการไฟล์ที่จะบันทึกก่อนที่จะทำการโทรeclimdแต่มันไม่ใช่ปัญหาใหญ่ขนาดนั้น IMO ประสบการณ์การแก้ไขยังดีอยู่และตัวดีบั๊ก (โดยใช้gud) ก็โอเค

หากคุณไม่พอใจการแก้ปัญหาทั้งหมดขึ้นอยู่กับคราสฉันจะแนะนำโหมดหูกวาง ฉันเคยใช้มันมาสองปีแล้วเช่นกัน (ก่อนที่ฉันจะเปลี่ยนเป็น emacs-eclim) และมันก็มีฟีเจอร์ที่ดีอยู่ด้านบนซึ่งมันใช้งานได้นอกกรอบกับโครงการ Maven ใด ๆ หากคุณใช้ Maven malabar-modeจะทำให้การเติมข้อมูลอัตโนมัติและการนำทางโค้ดของคุณทันที (เหนือสิ่งอื่นใด) ด้วย malabar ฉันใช้jdibugสำหรับการดีบักกระบวนการ Java ระยะไกล

แพคเกจ Java ที่เก่าแก่ที่สุดสำหรับ Emacs, JDEEนั้นอาจคุ้มค่าที่จะเช็คเอาท์ ที่นี่คุณจะได้พบกับคุณสมบัติ IDE จำนวนมากที่นำมาใช้ในโปรแกรม elisp (หรือโปรแกรม Java ที่เปิดตัวผ่านทางbsh) แต่ครั้งล่าสุดที่ฉันใช้ ฉันอาจเข้าใจผิด แต่ครั้งสุดท้ายที่ฉันตรวจสอบ JDEE นั้นเหมาะที่สุดสำหรับ Java <= 1.4 และโปรแกรมดีบั๊กที่ทำงานได้ดีที่สุดกับมันคือjdb(คนอื่นช้าเกินไป)

สุดท้ายไม่ว่าคุณจะเลือกแพคเกจ Java รุ่นใดฉันก็จะโยนProjectileลงไปในความดีที่เกี่ยวข้องกับโครงการ


8

ณ จุดนี้ (2018) LSP Java ( https://github.com/emacs-lsp/lsp-java ) ค่อนข้างดี คุณสมบัติไม่กี่:

  1. การเติมข้อความอัตโนมัติ
  2. Refactoring (แยกเมธอดเปลี่ยนชื่อใช้อินเตอร์เฟสแยกโลคัลแยกค่าคงที่และอื่น ๆ )
  3. นำเข้าอัตโนมัติ
  4. การนำทางรหัสในขณะที่ทำงานกับหลายโครงการ
  5. ค้นหาข้อมูลอ้างอิงการนำไปใช้งานชนิดเปิด
  6. การนำเข้าโครงการ Maven / Gradle, สร้างโดยอัตโนมัติ, อัปเดตการกำหนดค่าโครงการโดยอัตโนมัติ
  7. ติดตั้งง่าย
  8. การตั้งค่าตัวจัดรูปแบบ
  9. การสนับสนุน Flycheck + การแก้ไขอย่างรวดเร็วเช่น "Add cast", "Surround with try / catch" ฯลฯ

จุดขายที่สำคัญคือมีนักพัฒนาเต็มเวลาทำงานกับแบ็กเอนด์ LSP Java https://github.com/eclipse/eclipse.jdt.lsซึ่งแสดงคุณสมบัติใหม่ ๆ เกือบทุกสัปดาห์

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.