विम के पूरक के लिए सबसे अच्छा सामान्य प्रयोजन प्रोग्रामिंग उपकरण क्या हैं? [बन्द है]


22

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

सामान्य प्रोग्रामिंग के लिए मैं सबसे अच्छा सॉफ्टवेयर स्टैक क्या उपयोग कर सकता हूं जो विम का पूरक होगा? आप एक कोड आधार कैसे नेविगेट करते हैं, मेक रन करते हैं, अपने सोर्स कंट्रोल सिस्टम में बदलाव करते हैं, आदि? क्या आपके पास विम के बगल में दूसरा कंसोल है?


2
खुद ही विमल हो सकता है कि आप नौकरी के लिए सही प्लगइन्स / स्क्रिप्ट का उपयोग नहीं कर रहे हों। यह इस बात पर निर्भर करता है कि आप किस तरह की प्रोग्रामिंग कर रहे हैं, किस भाषा में, और किन उपकरणों की आपको जरूरत है।
काटें

मैं किसी भी भाषा को निर्दिष्ट नहीं कर रहा हूं ताकि मुझे मिलने वाली प्रतिक्रियाओं को प्रभावित न करें। मैं वास्तव में विम प्लग की तलाश नहीं कर रहा हूं, हालांकि वे उपयोगी हैं।
लुई सालिन

मुझे यह प्रस्तुति बहुत उपयोगी लगी

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

जवाबों:


8

विम की एक बड़ी विशेषता मौजूदा शेल कमांड के साथ एकीकरण में आसानी है। सबसे अधिक उपयोगी बाहरी उपकरण में से कुछ लोगों को लगता है कि में शामिल किए गए हैं coreutils और अन्य साधारण पाठ maniplulation उपकरण। उदाहरण के लिए, हम एक फ़ाइल में लाइनों की संख्या प्राप्त कर सकते हैं:

:! wc -l %

या शब्दों की संख्या:

:! wc -w %

शेल पर काम करने वाला कोई भी कमांड यहां काम करेगा। यह फ़ाइल में कमांड के आउटपुट को डालने के लिए :read( :r) कमांड के साथ शक्तिशाली रूप से जोड़ा जा सकता है । उदाहरण के लिए:

:r !wc -l %

आपके द्वारा संपादित की जा रही फ़ाइल में शब्द लाइन की गिनती को जगह देगा।

इसका एक और फायदा यह है कि आप वर्तमान में इनमें से किसी एक कमांड के आउटपुट के साथ जो टेक्स्ट एडिट कर रहे हैं, उसे रिप्लेस कर रहे हैं। उदाहरण के लिए, आप parकमांड निष्पादित करके पूरी फ़ाइल को प्रारूपित कर सकते हैं :

:% !par

5

मुझे अपने कोडबेस के माध्यम से नेविगेट करने के लिए NERDtree अपरिहार्य लगता है। इसके साथ ही, अपने बफ़र्स / खिड़कियों के आसपास जाने में कुशल बनने में कुछ समय का निवेश करना वास्तव में सार्थक है।


इस शानदार प्लगइन के संदर्भ के लिए +1। ( github.com/scrooloose/nerdtree )
noffle

4

अपनी भाषा जो भी आप ctags नामक एक सुविधा का उपयोग करना चाहते हैं, जो स्रोत परिभाषाओं के आसपास ब्राउज़ करने देता है। TAGS फ़ाइलों को उत्पन्न करने के लिए बाहरी उपकरण की आवश्यकता होती है जो VIM द्वारा किसी परियोजना के भीतर विभिन्न कोड परिभाषाओं के स्थानों की खोज के लिए उपयोग किया जाता है।

एक्सुबेटर ctags टूल प्राप्त करें , यह कई भाषाओं के लिए काम करता है और उपयोग करने के लिए सरल है।

VIM से :help ctags

ctags एक स्रोत के पेड़ में सभी पहचानकर्ताओं का एक सूचकांक बनाएगा। फिर आप अपने स्रोत ट्री के चारों ओर नेविगेट करने के लिए टैग कमांड का उपयोग कर सकते हैं। देखते हैं :help tag-commands। सबसे आसान यह है कि कर्सर को कीवर्ड पर रखें और दबाएं CTRL- ]। प्रेस से वापस आने के लिए CTRL-T

इसके अलावा आप यहाँ चर्चा किए गए कुछ VIM युक्तियों और सुधारों को देखना चाहते हैं , यह कुछ चीजों की बहुत व्यापक चर्चा है, जो कि विमर के अनुभव को बेहतर बनाने के लिए किया जा सकता है।


मैंने अपने प्रश्न में उल्लेख किया था मैं ctags का उपयोग कर रहा था, लेकिन वैसे भी उत्तर के लिए धन्यवाद! :)
लुई सालिन

4

विम एक बहुत शक्तिशाली उपकरण है, मुझे यकीन है कि आप सभी को पहले से ही पता है। आप कुछ हफ़्ते के भीतर विम का उपयोग करके उत्पादकता को बढ़ावा देना शुरू कर देंगे। लेकिन आप कभी भी विम के अपने ज्ञान को संतृप्त नहीं करेंगे। इसलिए, मैं विम में चीजों को करने के नए और कुशल तरीकों की तलाश में हूं। डेरेक व्याट नाम का एक लड़का है जिसने विम के उपयोग पर कुछ महान स्क्रैनास्ट किए हैं, और उन प्लगइन्स का भी उपयोग करता है जो उपयोग करते हैं।

कुछ प्लगइन्स जो मैं उपयोग करता हूं

  1. कमांड-टी यह ब्राउजिंग फाइलों को एक हवा बनाता है, और यह बहुत बुद्धिमान है

    कमांड-टी प्लग-इन कम से कम कीस्ट्रोक्स के साथ फाइल खोलने के लिए एक अत्यंत तेज, सहज ज्ञान युक्त तंत्र प्रदान करता है। इसे "कमांड-टी" नाम दिया गया है क्योंकि यह टेक्स्टमेट में कमांड-टी के लिए बाध्य "गो टू फाइल" विंडो से प्रेरित है।

  2. fuzzyfinder मैं इसे ज्यादातर बफ़र करने के लिए उपयोग करता हूं और वर्तमान निर्देशिका को बदल देता हूं।

    FuzzyFinder आपको इच्छित बफर / फ़ाइल / कमांड / बुकमार्क / टैग तक पहुंचने के लिए सुविधाजनक तरीके प्रदान करता है। FuzzyFinder फजी / आंशिक पैटर्न के साथ खोज करता है जिसमें यह एक दर्ज किए गए पैटर्न को परिवर्तित करता है

  3. NERDTree यह विम के लिए सबसे अच्छा फ़ाइल ब्राउज़र प्लगइन है।

    एनईआरडी वृक्ष आपको अपने फाइल सिस्टम का पता लगाने और फाइलों और निर्देशिकाओं को खोलने की अनुमति देता है। यह आपके लिए एक ट्री के रूप में फाइलसिस्टम प्रस्तुत करता है जिसे आप कीबोर्ड और / या माउस के साथ जोड़ते हैं। यह आपको सरल फाइलसिस्टम ऑपरेशन करने की भी अनुमति देता है।

  4. XPTemplate दुनिया में सबसे अच्छा अस्थायी प्लगइन।

    स्निपेट्स लाइब्रेरी के साथ विम के लिए कोड स्निपेट्स इंजन। XPTemplate आपको एक सहज, त्वरित और आरामदायक तरीके से कोड लिखने देता है।

  5. rails.vim यदि आप देव सामान की रेल करते हैं, तो यह अपरिहार्य है।

    रूब एप्लीकेशन पर रूबी को विकसित करने के लिए टेक्स्टमेट नवीनतम क्रेज हो सकता है, लेकिन विम हमेशा के लिए है। इस प्लगइन रूबी अनुप्रयोग विकास पर रूबी के लिए निम्नलिखित सुविधाएँ प्रदान करता है।

  6. NerdCommenter किसी भी तरह के कोड आसान में टिप्पणी करता है।

और वे केवल कुछ ही प्लगइन्स हैं, जिनका मैं उपयोग करता हूं, अपने सभी वाइम्प्स को डाउनलोड करने के लिए, मेरे डॉटफाइल्स की जांच करें


3

वीआईएम के लिए एक बढ़िया प्लगइन है जो सिंटैक्स को सिंटैस्टिक की जाँच करता है । फ़ाइल प्रबंधन, भवन, आदि के लिए कई अन्य उपकरण उपलब्ध हैं। Freenode.net पर IRC #vim पर जाएं, वहाँ बहुत सारे सहायक लोग हैं।


3

मेरा पसंदीदा cscope है। यदि आपने cscope समर्थन के साथ vim संकलित किया है, तो आप VIM से सीधे cscope कमांड का उपयोग कर सकते हैं। उदाहरण के लिए शामिल फ़ाइलों के लिए खोज, xyz फ़ंक्शन द्वारा कॉल किए गए फ़ंक्शंस, आदि मैंने इसे एक बहुत बड़े स्रोत कोड रिपॉजिटरी के साथ आज़माया है। यह बहुत मदद करता है।

http://cscope.sourceforge.net/cscope_vim_tutorial.html


1

यदि आप GCC (C, C ++, Java, Fortran) द्वारा समर्थित किसी भी भाषा में प्रोग्रामिंग कर रहे हैं, तो क्लीव एक शानदार प्लगइन है जो GDB डिबगर को VIM में एकीकृत करता है। मैंने वास्तव में इसे GDB के लिए सबसे अच्छे इंटरफेस में से एक पाया है कि वहाँ है।


0

मैं आमतौर पर screenप्रत्येक परियोजना के लिए एक सत्र निर्धारित करता हूं । विम विंडो 0 में है, और मैं शेल सत्र के लिए विंडो 1 का उपयोग करता हूं। अगर मैं एक ऐसी भाषा में कोडिंग कर रहा हूं जिसमें एक अच्छा REPL है जो मैं आमतौर पर विंडो 2 में चलाता हूं। बेशक, आपको ऐसा screenकरने की आवश्यकता नहीं है ; आप इसे विभिन्न टर्मिनल विंडो के साथ या मल्टीटाब टर्मिनल में टैब के साथ कर सकते हैं। मुझे screenअन्य विकल्पों की तुलना में अधिक स्थिर होना पड़ता है: यदि आपका टर्मिनल ऐप क्रैश हो जाता है, तो आप बस एक और टर्मिनल शुरू कर सकते हैं और अपने अभी भी चल रहे screenसत्र को फिर से कनेक्ट कर सकते हैं । screenएक बार जब आप इसे सीख लेते हैं, तो बहुत जल्दी से नेविगेट करने के लिए (खुद को बहुत पसंद करते हैं)।

मैं ज्यादातर जटिल संस्करण नियंत्रण गतिविधियों जैसे रिबासिंग या मर्जिंग के लिए शेल सत्र का उपयोग करके समाप्त करता हूं: सरल चीजें विम की कमांड लाइन (जैसे :!git commit % -m 'Added info aboutस्क्रीन .') से या भगोड़ा एडऑन का उपयोग करके किया जा सकता है । मुझे भगोड़ा लगता है :Gmove(मौजूदा बफर को vim और git इंडेक्स में दोनों नाम बदलें) और :Gdiff(वर्तमान इतिहास में अपने पिछले इतिहास के साथ वर्तमान बफर पर vimdiff आह्वान करें) विशेष रूप से उपयोगी है। आप स्क्रैच बफर में एक कमिट मैसेज बनाने, अपने कोड के विभिन्न हिस्सों से टेक्स्ट में कॉपी करने और फिर कमिट करने जैसे काम भी कर सकते हैं:%!git commit -F /dev/stdin

मैं कार्यात्मक / एकीकरण परीक्षण के लिए शेल सत्र का भी उपयोग करूंगा, यदि मैं जो भी काम कर रहा हूं, उस पर लागू होता है, उदाहरण के लिए यदि मैं कमांड-लाइन उपयोगिता लिख ​​रहा हूं।

हालांकि वहाँ एक अलग प्रत्येक भाषा में काम करने के लिए चाहते हो सकता है के लिए आवश्यक ऐड-ऑन हो रहा है विम के QuickFix कार्यक्षमता, डीबगिंग के लिए उपयोगी है। उन्होंने यह भी आह्वान विभिन्न तकनीकों का उपयोग करने के लिए लग रहे समारोह चाबियाँ करने के लिए मैपिंग या कुंजी दृश्यों के साथ शुरू \या ,, या कस्टम कमांड्स के लिए, या जब बफर सेव हो जाता है तो अपने आप इनवॉइस करके। अब तक मैंने वास्तव में इसे बाहर निकालने की जहमत नहीं उठाई है, और सिर्फ यूनिट टेस्ट या लिंट के परिणाम को पढ़कर एक स्क्रैच बफर का उपयोग करता है जैसे :r !python -m doctest whatever.py। कोड को संशोधित करें, uपूर्ववत करने के लिए वापस स्क्रैच बफर पर स्विच करें , फिर :rउस कमांड को प्राप्त करने के लिए हिट और अप एरो (अधिकांश समय)। लेकिन आप इसके लिए एक लायक हो सकते हैं, जबकि इसके लिए आप किस भाषा में काम करते हैं, इस पर निर्भर करता है।

सी, जावा, आदि जैसी लोकप्रिय संकलित भाषाओं के :makeलिए, एक निर्माण करेंगे, और क्विकफिक्स सूची के लिए समर्थन अच्छी तरह से स्थापित है। तो आप :copenक्विकफिक्स बफर को प्रदर्शित करने के लिए कर सकते हैं । यह त्रुटियों की एक सूची दिखाएगा, प्रति पंक्ति एक; Enterएक लाइन पर टकराने से आपकी दूसरी विंडो उस बिंदु पर उस फ़ाइल में कूद जाएगी।

यदि आप एक समय में कई प्रोजेक्ट्स के साथ काम कर रहे हैं, तो आप स्थान सूची:lmake में संग्रहीत त्रुटियों की सूची की व्यवस्था करने के लिए कर सकते हैं : यह क्विकफिक्स सूची की तरह है, लेकिन आपके भीतर एक सिंगलटन के बजाय एक एकल विंडो से जुड़ा है विम उदाहरण। वर्तमान विंडो के लिए एक स्थान सूची खोलेगा।:lopen

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