Sự phù hợp của Emacs như một IDE phát triển Java


22

Tôi đang thực hiện một nỗ lực khác để chuyển đổi sang Emacs. Tôi là một người dùng Vi tốt nhưng đã sử dụng Eclipse cho hầu hết các công việc phát triển của tôi trong hơn 10 năm qua (đã quá lâu rồi).

Vì vậy, tôi đã đọc một số và nghĩ rằng JDEE là con đường để đi - đã cấu hình nó nhưng vẫn có một số câu hỏi cơ bản.

Nhưng, sau khi thực hiện một số nghiên cứu khác - có vẻ như JDEE có thể không được duy trì tốt và có lẽ tất cả những gì tôi cần là CEDET?

Vì vậy, câu hỏi:

  1. Emacs có thể phục vụ như là sự thay thế Eclipse của tôi không? Tôi tổ chức bản dựng của mình bằng Maven?
  2. Nếu "1" là có thì tôi nên bắt đầu với bộ công cụ nào: CEDET? JDEE?

Cảm ơn.


4
Emacs là một trình soạn thảo tuyệt vời, nhưng không phải là một Java IDE tuyệt vời. Bạn sẽ thất vọng.
Thorbjørn Ravn Andersen

Câu trả lời:


20

Tôi sẽ bảo thủ và nói không , Emacs không phải là sự thay thế thả xuống cho Eclipse (đặc biệt là không nằm ngoài khả năng). Tuy nhiên, điều đó không có nghĩa là nó không phù hợp để phát triển Java.

Vì bạn đã quen thuộc với Eclipse, tôi khuyên bạn nên xem qua eclim:

Eclim cung cấp khả năng truy cập các tính năng chỉnh sửa mã Eclipse (hoàn thành mã, tìm kiếm, xác thực mã và nhiều tính năng khác ) thông qua dòng lệnh hoặc kết nối mạng cục bộ, cho phép các tính năng đó được tích hợp với trình soạn thảo yêu thích của bạn.

Eclim hỗ trợ Maven . Nó tích hợp với Emacs thông qua một gói được gọi là emacs-eclim. Thực hiện theo các bước được nêu trong emacs-eclim README để cài đặt nó 1 :

  1. Tải về và cài đặt eclim.

  2. Cài đặt emacs-eclim:

    • Nếu bạn chưa có, hãy thêm MELPA vào package-archives:

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

    • Đánh giá mã ở trên (bằng cách nhấn C-x C-evới điểm được định vị sau lần đóng cuối cùng) hoặc khởi động lại Emacs.

    • Cài đặt emacs-eclimbằng cách làm M-x package-install RET emacs-eclim RET.
  3. Thêm mã sau vào tệp init của bạn:

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

1 Hướng dẫn sửa đổi để chỉ bao gồm một phương pháp cài đặt duy nhất.


1
có thể cảm ơn rất nhiều vì câu trả lời - Tôi quen thuộc với eclim, tuy nhiên tôi đang cố gắng thoát khỏi nhật thực do sự phình to của nó - mặc dù tôi đánh giá cao rằng đây là một bước chuyển tiếp tốt.
dùng1172468

1
Vì vậy, câu hỏi: nói nếu eclim không tồn tại, đề nghị của bạn là gì?
dùng1172468

Học cách sống mà không tái cấu trúc rồi.
wasamasa

2
@ user1172468 Nó phụ thuộc - Bạn muốn loại tính năng nào? Một sự thay thế hoàn toàn cho Eclipse chắc chắn sẽ chứa một số sự phình to. Nếu bạn muốn thoát khỏi điều đó, cách tốt nhất của bạn là đưa ra danh sách các trường hợp sử dụng cụ thể và kiểm tra xem (a) Emacs có hỗ trợ chúng ra khỏi hộp không và / hoặc (b) có gói bổ trợ cung cấp chức năng liên quan. Chúng tôi có thể giúp bạn với điều đó, nhưng chỉ khi bạn cho chúng tôi biết các tính năng bắt buộc của bạn :)
itjeyd

1
Cần lưu ý rằng với Eclim, bạn có thể chạy Eclipse mà không cần các công cụ GUI, sẽ sử dụng ít tài nguyên hơn. Một điều khác về Eclim là tính năng tự động hoàn thành của nó không thể sử dụng được (nó phải lưu bộ đệm trước khi yêu cầu hoàn thành + nó khóa trình soạn thảo trong khi chờ phản hồi).
wvxvw

11

Emacs / eclim đã là IDE Java chính của tôi trong vài năm qua và sẽ nói rằng nó hoạt động tốt, ngay cả với các cơ sở mã lớn (không gian làm việc emacs / eclim hiện tại của tôi có hơn 4000 tệp Java). Đúng là emacs-eclim yêu cầu tệp phải được lưu trước khi thực hiện cuộc gọi đến eclimd, nhưng đó không phải là vấn đề lớn IMO. Trải nghiệm chỉnh sửa vẫn tốt và trình gỡ lỗi (sử dụng gud) vẫn ổn.

Nếu bạn bực bội tất cả các giải pháp dựa trên Eclipse, tôi sẽ khuyên dùng chế độ Malabar . Tôi cũng đã sử dụng điều đó trong một vài năm (trước khi tôi chuyển sang emacs-eclim) và nó có một số tính năng hay, trên hết là nó hoạt động vượt trội với bất kỳ dự án Maven nào. Nếu bạn sử dụng Maven, malabar-modesẽ ngay lập tức cung cấp cho bạn hoàn thành tự động và điều hướng mã (trong số những thứ khác). Với malabar, tôi đã sử dụng jdibug để gỡ lỗi các quy trình Java từ xa.

Gói Java lâu đời nhất cho Emacs, JDEE , cũng có thể đáng để kiểm tra. Tại đây, bạn sẽ tìm thấy rất nhiều tính năng IDE được triển khai trong elisp thuần túy (hoặc các chương trình Java đi kèm được khởi chạy qua bsh), nhưng lần trước tôi đã sử dụng nó, nó đã khá cũ. Tôi có thể nhầm, nhưng lần trước tôi đã kiểm tra, JDEE phù hợp nhất với Java <= 1.4 và trình gỡ lỗi hoạt động tốt nhất với nó là jdb(những cái khác quá chậm).

Cuối cùng, bất kể bạn chọn gói Java nào, tôi cũng sẽ ném vào Projectile vì nhiều điều tốt đẹp liên quan đến dự án.


8

Tại thời điểm này (2018), LSP Java ( https://github.com/emacs-lsp/lsp-java ) là khá tốt. Một số tính năng:

  1. Tự động hoàn thành
  2. Tái cấu trúc (phương thức trích xuất, đổi tên, thực hiện giao diện, trích xuất cục bộ, trích xuất hằng số, v.v.)
  3. Tự động nhập
  4. Mã điều hướng trong khi làm việc trên nhiều dự án
  5. Tìm tài liệu tham khảo, triển khai, loại mở.
  6. Nhập dự án Maven / Gradle, xây dựng tự động, cập nhật cấu hình dự án tự động
  7. Dễ dàng cài đặt
  8. Ưu tiên định dạng
  9. Hỗ trợ Flycheck + sửa lỗi nhanh như "Thêm cast", "Surround with try / Catch", v.v.

Điểm bán hàng chính là có các nhà phát triển toàn thời gian làm việc trên phụ trợ Java LSP https://github.com/eclipse/eclipse.jdt.ls mang đến các tính năng mới gần như mỗi tuần.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.