Придатність 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на точку, розташовану після останнього закриття батьків) або перезапустіть Emacs.

    • Встановити emacs-eclim, виконавши M-x package-install RET emacs-eclim RET.
  3. Додайте такий код у свій init-файл:

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

1 Інструкції змінені, щоб включати лише один спосіб установки.


1
Можливо, спасибі за відповідь - я знайомий із еклімом, проте я намагаюся піти від затемнення через його роздуття - хоча я ціную, що це хороший перехідний крок.
користувач1172468

1
Отже, запитання: скажіть, якби екліму не існувало, яка б ваша рекомендація?
користувач1172468

Навчіться жити без рефакторингу тоді.
wasamasa

2
@ user1172468 Це залежить - Які типи функцій ви хочете? Повномасштабна заміна Eclipse неминуче міститиме деякий набряк. Якщо ви хочете відійти від цього, найкраще запропонувати перелік конкретних випадків використання та перевірити, чи (a) Emacs підтримує їх у вікні та / або (b) чи є пакет додатків, який забезпечує відповідна функціональність. Ми можемо вам у цьому допомогти, але тільки якщо ви дозволите нам свої обов'язкові функції :)
itsjeyd

1
Слід зазначити, що за допомогою Eclim ви можете запускати Eclipse без GUI-матеріалів, що дозволить використовувати менше ресурсів. Інша річ у Eclim - це те, що його автозавершення не застосовується (він повинен зберегти буфер перед тим, як вимагати завершення + він заблокує редактор під час очікування відповіді).
wvxvw

11

Emacs / eclim був моїм основним Java IDE протягом останніх кількох років, і, можна сказати, він працює добре, навіть із великими базами коду (мій поточний робочий простір emacs / eclim налічує понад 4000 файлів Java). Це правда, що emacs-eclim вимагає збереження файлу перед тим, як здійснити його виклик eclimd, але це не є великою проблемою IMO. Досвід редагування все ще хороший, і налагоджувач (використання gud) в порядку.

Якщо ви обурюєте всі рішення, засновані на Eclipse, я рекомендував би режим Малабар . Я також користувався цим пару років (до того, як я перейшов на emacs-eclim), і він має деякі приємні особливості, вершина яких полягає в тому, що він працює нестандартно з будь-яким проектом Maven. Якщо ви користуєтесь Maven, malabar-modeмиттєво надасте автоматичне завершення та навігацію кодом (серед іншого). З малабаром я використовував 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. Рефакторинг (метод вилучення, перейменування, реалізація інтерфейсу, витяг локального, витяг константа тощо)
  3. Автоматичний імпорт
  4. Навігація по коду під час роботи над кількома проектами
  5. Знайдіть посилання, реалізації, відкритого типу.
  6. Імпорт проекту Maven / Gradle, автоматична збірка, автоматичне оновлення конфігурації проекту
  7. Простота установки
  8. Налаштування форматів
  9. Підтримка Flycheck + швидкі виправлення на кшталт "Додати роль", "Об'єм із спробою / лову" тощо.

Найважливішим моментом продажу є те, що є розробники, що працюють на повний робочий день, над версією Java LSP https://github.com/eclipse/eclipse.jdt.ls, яка майже кожен тиждень відкриває нові функції.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.