जावा आईडीई के रूप में विम का उपयोग करने के लिए टिप्स? [बन्द है]


195

मैं विम का आदी हूं, अब यह टेक्स्ट फ़ाइलों को संपादित करने का मेरा वास्तविक तरीका है।

यह होने के नाते कि यह मुख्य रूप से एक पाठ संपादक है और आईडीई नहीं है, क्या किसी ने मेरे लिए जावा ऐप विकसित करते समय इसे आसान बनाने के लिए कोई चाल चली है?

कुछ प्रश्न मेरे पास हैं:

  • Vi को छोड़कर मैं किसी मावन कार्य को कैसे करूँ?
  • क्या मुझे कोड पूरा हो सकता है?
  • वाक्य रचना हाइलाइटिंग कैसे है?

कुछ और ("ऐसा न करें!") के बारे में जो मुझे पता होना चाहिए?


1
मैं काम पर बड़े पैमाने पर netbeans का उपयोग करता हूं, लेकिन घर पर अपने व्यक्तिगत सर्वर के लिए ... NetBeans का उपयोग करना अच्छी तरह से काम नहीं करता है क्योंकि मुझे अपना विकास दूसरे कंप्यूटर पर करना होगा और फिर तैनात करना होगा। गोल यात्रा अभी बहुत लंबी है।
All14 लालोंडे

1
@AdamC यहाँ से Google में आ रहा है ... अजगर से आने वाली एक स्व-भर्ती कमांड लाइन geek के रूप में, मुझे लगता है कि एक जावा विकास के माहौल के साथ सेटअप में प्रवेश करने के लिए बाधा इस तरह के कार्यक्रमों की आवश्यकता से बहुत बढ़ जाती है। मुझे पहले से ही JVM स्थापित करना है ... किसी को नमस्ते दुनिया में जाने के लिए भी अधिक स्थापना क्यों करनी चाहिए? स्क्रिप्टिंग भाषाओं से आने वाले लोगों को यह सिर्फ सामान्य स्वभाव है जब पहली बार जावा सीखने जा रहे हैं।
DeaconDesperado

2
जब मैं VIM में संपादन कर रहा हूँ। कंसोल पर वापस जाने के लिए आप बस ctrl + z कर सकते हैं जो बैकग्राउंड में vim लगाएगा और आपको कंसोल पर वापस लाएगा। फिर आप अपने अग्रभूमि में vim को वापस लाने के लिए fg कमांड का उपयोग कर सकते हैं
मैथ्यू किर्कले

आपको ctrl =
fuzzyTew

3
आपको ctrl + z / fg .. बस टाइप नहीं करना है: कमांड और 'कमांड' चलाया जाएगा। यदि आप एक त्वरित शेल चाहते हैं, तो टाइप करें! फिर यदि आप बाहर निकलते हैं तो झूलने वाली पृष्ठभूमि की नौकरी छोड़ने के बजाय आप वापस जाएँ। आप प्लगइन्स के साथ एक विम विंडो में शेल प्राप्त कर सकते हैं।
फजाइटीव्यू

जवाबों:


75

कुछ सुझाव:

  • सुनिश्चित करें कि आप vim (vi में सुधार) का उपयोग करते हैं। लिनक्स और UNIX सिम्कलिन vi के कुछ संस्करणों को vim करना।
  • आप eclim के साथ कोड पूरा कर सकते हैं
  • या आप विल्लुपिन के साथ ग्रहण के भीतर vi कार्यक्षमता प्राप्त कर सकते हैं
  • सिंटैक्स हाइलाइटिंग विम के साथ महान है
  • चींटी / मावेन बिल्ड चलाने जैसे छोटे मैक्रोज़ को लिखने के लिए विम का अच्छा समर्थन है

मज़े करो :-)


7
जावा सिंटैक्स हाइलाइटिंग पर सहायता प्राप्त करने के लिए कमांड। : मदद java.vim
माइकल

2
ग्रहण के भीतर विम कार्यक्षमता प्राप्त करने का एक और तरीका है वैपर । यह विम कुंजी बाइंडिंग के अधिकांश है और viPlugin के विपरीत यह मुफ़्त है।
n1te

1
कैसे एक डीबगर के बारे में जो कदम से कदम का समर्थन करता है, आदि के माध्यम से?
डोनाटो

1
लिनक्स ... सिम्लिंक vi को vim करने के लिए Counterexample: Arch Linux
johnchen902

30

मैं सालों से विम यूजर हूं। मैं खुद को कभी-कभी ग्रहण शुरू करना शुरू कर रहा हूं (vi प्लगइन का उपयोग करके, जिसे, मुझे कहना होगा, विभिन्न प्रकार के मुद्दे हैं)। मुख्य कारण यह है कि जावा बिल्ड में काफी समय लगता है ... और वे मावेन जैसे अत्यधिक घटक बिल्ड-फ्रेमवर्क के अलावा धीमी और धीमी हो रही हैं। इसलिए आपके परिवर्तनों को मान्य करने में काफी समय लगता है, जो कि मुझे लगता है कि अक्सर संकलन के मुद्दों का एक गुच्छा होता है, जिसे मुझे बाद में हल करना पड़ता है, और प्रतिबद्ध संदेशों को फ़िल्टर करने में थोड़ी देर लगती है।

जब मुझे संकलन के मुद्दों की एक बड़ी कतार मिलती है, तो मैं ग्रहण को आग लगा देता हूं। यह मुझे परिवर्तनों का केक-काम करने देता है। यह धीमा है, उपयोग करने के लिए क्रूर है, और लगभग एक संपादक के रूप में अच्छा नहीं है क्योंकि विम है (मैं लगभग एक दशक से विम का उपयोग कर रहा हूं, इसलिए यह मेरे लिए दूसरा स्वभाव है)। मैं सटीक संपादन के लिए खोजता हूं- एक विशिष्ट बग को ठीक करने की जरूरत है, कुछ विशिष्ट बिट तर्क, या कुछ और करने की आवश्यकता है ... मैं केवल ग्रहण में संपादन में उतना कुशल नहीं हो सकता जितना मैं विम में कर सकता हूं।

इसके अलावा एक टिप:

:set path=**
:chdir your/project/root

यह ^wfएक बड़े प्रोजेक्ट को नेविगेट करने के लिए क्लासनेम पर एक बहुत अच्छी सुविधा बनाता है ।

तो वैसे भी, पतला है, जब मुझे बहुत सारे नए कोड जोड़ने की आवश्यकता होती है, विम समय संकलन के मुद्दों और इसी तरह के सामान का पीछा करते हुए बस मुझे धीमा करने के लिए लगता है। जब मुझे विशिष्ट स्रोतों को खोजने और संपादित करने की आवश्यकता होती है, हालांकि, ग्रहण एक स्लेज हथौड़ा की तरह लगता है। मैं अभी भी विम के लिए जादुई आईडीई की प्रतीक्षा कर रहा हूं। मुझे पता है कि तीन प्रमुख प्रयास हुए हैं। एक शुद्ध विम आईडीई-प्रकार प्लगइन है जो बहुत सारी सुविधाएँ जोड़ता है लेकिन उपयोग करना असंभव लगता है। वहाँ एक्लीम है, जो मुझे बहुत परेशानी हुई है। और एक्लिप्स के लिए एक प्लगइन है जो वास्तव में विम को एम्बेड करता है। अंतिम गंभीर जावा ईई काम के लिए सबसे आशाजनक लगता है, लेकिन यह बहुत अच्छी तरह से काम नहीं करता है या वास्तव में अंतर्निहित विम के साथ एक्लिप्स की सभी विशेषताओं को एकीकृत करता है।

टाइपिंग इश्यू के साथ कीस्ट्रोके, हिल्ट कोड के साथ मिसिंग इंपोर्ट को जोड़ने जैसी चीजें, एक बड़े जावा प्रोजेक्ट पर काम करते समय आपकी आईडीई से अमूल्य लगती हैं।


5
वोट के लिए "^ wf" मुझे नहीं पता था कि vim में ऐसी बात है :)
Krzysztof Kraso11

4
आप ^ wf के बारे में अधिक बता सकते हैं? यह क्या करता है?
user2427

1
यह जावा फ़ाइल / वर्ग (फ़ाइल नाम एक्सटेंशन .javaकी आवश्यकता नहीं है) को एक नई विभाजन विंडो में कर्सर के नीचे खोलता है यदि यह फ़ाइल खोजने में सक्षम है। इसलिए :set path=**सहायक है।
निर्गमन

तो क्या ** सचमुच दो तारक हैं?
टैको

1
@ लिजत :help ^wf- अन्य विम मदद की तरह
जेईएसआई

22
  • Vi को छोड़कर मैं किसी मावन कार्य को कैसे करूँ?

    मावेन किसी भी अन्य शेल कमांड से अलग नहीं है:

    :!mvn

    आप कर सकते हैं :set makeprg=mvnयदि आप पहले से ही के लिए एक पसंदीदा कुंजी मानचित्रण है :make

  • क्या मुझे कोड पूरा हो सकता है?

    हां, एक्लिम महान है, विम की संपादन दक्षता और ग्रहण की जावा भाषा-विशिष्ट जागरूकता के बीच एक पुल है।

    <C-n>और <C-p>इतने महान नहीं हैं, लेकिन आश्चर्यजनक रूप से उपयोगी हैं।

  • वाक्य रचना हाइलाइटिंग कैसे है?

    रेगेक्स-आधारित हाईलिगर के लिए पर्याप्त से अधिक अच्छा है।

आप अन्य vim + जावा प्रयोजनों के लिए साधनों पर विचार करना चाह सकते हैं, जैसे कोड टेम्प्लेट ( स्निपेटेमु -डफॉल्ट स्निपेट चूसना, लेकिन कस्टमाइज़बिलिटी चमक), usages की खोज करना और घोषणाओं में जाना (एक्लिम, grep, ctags), गेटर्स और सेटर्स पैदा करना ( java_getset) । या eclim), स्वचालित आयात (eclim)। आपको त्वरित प्रयोगों ( बीनशेल , उर्फ bsh) के लिए जावा शेल की भी आवश्यकता हो सकती है ।


1
बीनशेल टिप के लिए धन्यवाद, मुझे उस टूल के बारे में नहीं पता था
GoingTharn



8

मुझे पता है कि यह कुछ साल बाद है लेकिन यहाँ कुछ दिलचस्प प्लगइन्स हैं। मैंने अभी तक इनमें से किसी भी YMMV की कोशिश नहीं की है।

https://github.com/mikelue/vim-maven-plugin

https://github.com/vim-scripts/maven-ide

संपादित करें: ओह एक BTW, मैंने कोशिश की है पर और बंद है, लेकिन मुझे पसंद है इसका कारण इसकी लपट है। हेडलेस मोड पर भी एक्लिप्स को एक्सेप्ट करना मेरे लिए बहुत ज्यादा मानसिक उत्थान है।

EDIT2: मैं हाल ही में playframework का उपयोग कर रहा हूं और यह शायद maven बिल्ड के साथ भी काम करेगा:

  • संकलन के लिए, आप वीवीएन के मेव को चलाने के लिए या मेरे मामले में कॉन्फ़िगर कर सकते हैं, एक फ़ाइल के लिए एक निर्माण स्क्रिप्ट, टी को चलाएं।

    autocmd Filetype java setl makeprg=play_compile
    autocmd Filetype java setl efm=%A\ %#[error]\ %f:%l:\ %m,%-Z\ %#[error]\ %p^,%-C%.%#

"play_compile" केवल एक संकलन स्क्रिप्ट है। यह एसबीटी का उपयोग करता है इसलिए मावेन को यहां ठीक काम करना चाहिए। यहां तक ​​कि डायरेक्ट जेवैक भी काम करेगा। इस तरह, आप VIM के क्विकफिक्स बफर (: cnext,: clist: cprev, आदि) का उपयोग कर सकते हैं।

  • कक्षाओं में कूदने के लिए, मैं ctrl-p का उपयोग करता हूं । यह खूबसूरत है। इसका इस्तेमाल करें। फाइलों के इर्द-गिर्द छलांग लगाने की तुलना में तेज।

  • तरीकों के इर्द-गिर्द कूदने के लिए, मैं अत्यधिक सी-टैग्स के साथ टैगशेक का उपयोग करता हूं। Ctrl-] का उपयोग करके विधि घोषणाओं में कूदें। Ctrl-o का उपयोग करके वापस जाएं। नॉट ग्रहण के रूप में अच्छा काम करता है, लेकिन यह काफी अच्छा काम करता है।

  • मैं कोड पूरा होने के लिए सुपरटैब का उपयोग करता हूं । Javacomplete बहुत धीमा है, इसलिए मैं ओमनी-पूर्ण के साथ रहता हूं। फिर से, ग्रहण के रूप में सटीक नहीं है, लेकिन इसका उपवास और मेरे लिए काफी अच्छा काम करता है।


5

विम का प्रयोग करें। ^ - ^ (जीवीएम, सटीक होना)

आपके पास यह सब (कुछ प्लगइन्स के साथ) होगा।

Btw, snippetsEmu उपयोगी स्निपेट (जैसे TextMate) में कोडिंग के लिए एक अच्छा उपकरण है। आप पूर्व-निर्मित पैकेज का उपयोग (या संशोधित) कर सकते हैं या अपना खुद का बना सकते हैं।

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