जावा विकास आईडीई के रूप में Emacs की उपयुक्तता


22

मैं Emacs में बदलने के लिए एक और प्रयास कर रहा हूँ। मैं एक अच्छा वीआई उपयोगकर्ता हूं लेकिन पिछले 10+ वर्षों से मेरे अधिकांश विकास कार्यों के लिए ग्रहण का उपयोग कर रहा हूं (यह लंबे समय से है)।

इसलिए मैंने कुछ पढ़ना शुरू किया और सोचा कि JDEE जाने का तरीका है - इसे कॉन्फ़िगर किया है लेकिन फिर भी कुछ बुनियादी प्रश्न हैं।

लेकिन, कुछ और शोध करने के बाद - ऐसा लगता है कि JDEE का रखरखाव अच्छी तरह से नहीं किया जा सकता है और शायद मुझे CEDET की आवश्यकता है?

तो सवाल:

  1. क्या Emacs मेरे ग्रहण प्रतिस्थापन के रूप में काम कर सकते हैं? मैं मावेन का उपयोग करके अपने निर्माण को व्यवस्थित करता हूं?
  2. यदि "1" हां है, तो मुझे किस उपकरण के साथ शुरू करना चाहिए: CEDET? JDEE?

धन्यवाद।


4
एमएसीएस एक महान संपादक है, लेकिन एक महान जावा आईडीई नहीं है। आप निराश हो जाएंगे।
थोरबजोरन राव एंडरसन

जवाबों:


20

मैं रूढ़िवादी हो सकता है और कहने के लिए जा रहा हूँ नहीं , Emacs है नहीं एक ड्रॉप में प्रतिस्थापन ग्रहण के लिए (विशेष रूप से बाहर बॉक्स के नहीं)। हालाँकि, इसका मतलब यह नहीं है कि यह जावा विकास के लिए उपयुक्त नहीं है।

चूंकि आप पहले से ही ग्रहण से परिचित हैं, मेरा सुझाव है कि आप पर एक नज़र है eclim:

Eclim कमांड लाइन या एक स्थानीय नेटवर्क कनेक्शन के माध्यम से ग्रहण कोड संपादन सुविधाओं (कोड समापन, खोज, कोड सत्यापन, और कई और अधिक ) तक पहुंचने की क्षमता प्रदान करता है , जिससे उन विशेषताओं को आपके पसंदीदा संपादक के साथ एकीकृत किया जा सकता है।

एक्लिम मावेन का समर्थन करता है । यह 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-file में जोड़ें:

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

1 निर्देश केवल एक स्थापना विधि को शामिल करने के लिए संशोधित।


1
उत्तर के लिए बहुत धन्यवाद - मैं एक्लीम से परिचित हूं, हालांकि मैं इसे ब्लोट के कारण ग्रहण से दूर करने की कोशिश कर रहा हूं - हालांकि मैं सराहना करता हूं कि यह एक अच्छा संक्रमण कदम है।
user1172468

1
तो सवाल: कहते हैं कि अगर एक्लीम मौजूद नहीं है, तो आपकी सिफारिश क्या होगी?
user1172468

तब बिना रिफलेक्टरिंग के जीना सीखें।
वामासा

2
@ user1172468 यह निर्भर करता है - आप किस प्रकार की सुविधाएँ चाहते हैं? ग्रहण के लिए पूर्ण विकसित प्रतिस्थापन में अनिवार्य रूप से कुछ ब्लोट होंगे। यदि आप उससे दूर होना चाहते हैं तो आपका सबसे अच्छा दांव विशिष्ट उपयोग के मामलों की एक सूची के साथ आना है और जांचना है कि क्या (ए) एमएसीएस उन्हें बॉक्स से बाहर का समर्थन करता है और / या (बी) एक ऐड-ऑन पैकेज है जो प्रदान करता है प्रासंगिक कार्यक्षमता। हम इसमें आपकी सहायता कर सकते हैं, लेकिन केवल तभी जब आप हमें अपनी विशेषताओं में शामिल होने दें :)
itsjeyd

1
यह ध्यान दिया जाना चाहिए कि एक्लीम के साथ आप जीयूआई सामान के बिना ग्रहण चला सकते हैं, जो कम संसाधनों का उपयोग करेगा। एक्लिम के बारे में एक और बात यह है कि इसका स्वत: पूर्ण होना प्रयोग करने योग्य नहीं है (इसे पूरा होने का अनुरोध करने से पहले बफर को बचाना होगा + यह प्रतिक्रिया की प्रतीक्षा करते हुए संपादक को बंद कर देता है)।
wvxvw

11

Emacs / eclim पिछले कुछ वर्षों के लिए मेरा प्राथमिक जावा IDE रहा है और यह कहेंगे कि यह अच्छी तरह से काम करता है, यहां तक ​​कि बड़े कोड आधारों के साथ (मेरे वर्तमान emacs / eclim कार्यक्षेत्र में 4000 से अधिक जावा फाइलें हैं)। यह सच है कि emacs-eclim को इसकी कॉल करने से पहले फ़ाइल को सहेजने की आवश्यकता होती है eclimd, लेकिन यह IMO की समस्या से बड़ा नहीं है। संपादन का अनुभव अभी भी अच्छा है और डीबगर (उपयोग करना gud) ठीक है।

यदि आप ग्रहण के आधार पर सभी समाधानों पर नाराजगी जताते हैं, तो मैं मालाबार मोड की सिफारिश करूंगा । मैंने कुछ वर्षों के लिए भी उपयोग किया है (इससे पहले कि मैं emacs-eclim पर स्विच किया गया) और इसमें कुछ अच्छी विशेषताएं हैं, जिनमें से शीर्ष यह है कि यह किसी भी मैवेन प्रोजेक्ट के साथ बॉक्स से बाहर काम करता है। यदि आप मावेन का उपयोग करते हैं, malabar-modeतो तुरंत आपको ऑटो पूरा करने और कोड नेविगेशन (अन्य चीजों के बीच) देगा। मालाबार के साथ, मैंने दूरस्थ जावा प्रक्रियाओं को डीबग करने के लिए jdibug का उपयोग किया ।

Emacs, JDEE के लिए सबसे पुराना जावा पैकेज भी जांचने लायक हो सकता है। यहाँ, आपको बहुत सारे IDE फीचर्स लागू होंगे जो कि शुद्ध elisp (या साथ में शुरू किए गए Java प्रोग्राम्स bsh) में लागू किए गए थे, लेकिन पिछली बार जब मैंने इसका इस्तेमाल किया था, तो यह बहुत दिनांकित था। मुझसे गलती हो सकती है, लेकिन पिछली बार जब मैंने जाँच की थी, तो JDEE जावा <= 1.4 के लिए सबसे उपयुक्त था और इसके साथ सबसे अच्छा काम करने वाले डिबगर jdb(अन्य बहुत धीमी गति से थे)।

अंत में, चाहे आप किसी भी जावा पैकेज को चुनें, मैं प्रोजेक्टाइल के बहुत सारे प्रोजेक्ट से संबंधित अच्छाई के लिए फेंक देता हूं ।


8

इस बिंदु (2018) पर, एलएसपी जावा ( https://github.com/emacs-lsp/lsp-java ) बहुत अच्छा है। सुविधाओं में से कुछ:

  1. स्वत: पूर्ण
  2. Refactoring (निकालने की विधि, नाम बदलें, इंटरफ़ेस लागू करें, स्थानीय निकालें, निरंतर निकालें और इसी तरह।)
  3. ऑटो आयात
  4. कई परियोजनाओं पर काम करते हुए कोड नेविगेशन
  5. संदर्भ, कार्यान्वयन, खुले प्रकार का पता लगाएं।
  6. मावेन / ग्रैडल परियोजना आयात, स्वचालित निर्माण, स्वचालित परियोजना विन्यास अद्यतन
  7. सेटअप करने में आसान
  8. प्रारूप वरीयता
  9. फ्लाइचेक सपोर्ट + क्विक फिक्स जैसे "ऐड कास्ट", "सराउंड विद ट्राई / कैच", आदि।

प्रमुख बिक्री बिंदु यह है कि एलएसपी जावा बैकएंड पर काम करने वाले फुलटाइम डेवलपर्स हैं https://github.com/eclipse/eclipse.jdt.ls जो लगभग हर हफ्ते नई सुविधाएँ लाता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.