बड़े पैमाने पर एप्लिकेशन को कोड करते समय विम का उपयोग करना


17

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

आम सलाह आप क्या दे सकते हैं?


1
आपको निश्चित रूप से मदद करने के लिए कुछ विम स्क्रिप्ट जोड़ने की आवश्यकता होगी। मैं बहुत से प्रोग्राम का उपयोग करने के लिए विम का उपयोग करता हूं, और मैं हमेशा स्रोत कोड के आसपास नेविगेट करने में मेरी मदद करने के लिए ctags का उपयोग करता हूं। किस भाषा का उपयोग कर रहे हैं?
तेहनीत

जवाबों:


10

अनुभवी प्रोग्रामर का एक पहलू जो IDE से कंसोल / xterm वातावरण में स्थानांतरित होता है, स्रोत कोड ऑब्जेक्ट्स (फ़ंक्शन नाम, चर) के अनुक्रमण के लिए एक प्रतिस्थापन ढूंढ रहा है। मेरा मानना ​​है कि Microsoft के Visual Studio के लिए प्रयुक्त सामान्य शब्द Intellisense या ऐसा ही कुछ है।

यूनिक्स / लिनक्स की दुनिया में, जैसे कि विम, एक उपकरण का उपयोग किया जाता है यदि ctagsया लोकप्रिय कई भाषा ओपन सोर्स कार्यान्वयन, एक्सटर्बेंट टीटीजी । यह नहींvim विशिष्ट , और Emix, CRiSP, vile और कई अन्य vi क्लोन, nedit, gedit, JED, UltraEdit, BBEdit, और DreamWeaver सहित कई Unix, Linux, MS Windows, Mac OS पाठ संपादकों द्वारा समर्थित है। (इनमें से कुछ तृतीय-पक्ष प्लगइन्स के माध्यम से हैं)।

इसके अलावा, अच्छी डिजाइन और विचारशील अपघटन, बड़ी परियोजनाओं का संगठन इस परियोजना को प्रबंधनीय बनाता है कि किसी भी जानकारी के किसी भी बिट को देखने के लिए केवल 1-2 स्पष्ट संभावित स्थान हैं ( typedefयाclass परिभाषा, आदि) के ।

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


1
विपुल ctags सुझाव के लिए +1 !
अत्तिला ओ।

1
मुझे लगता है कि सिर्फ संगठित होने से बहुत मदद मिलती है। यदि आप स्रोत में एक कलाकृति को देख सकते हैं और कह सकते हैं कि "ओह, जिसे इस स्थान पर परिभाषित किया जाना चाहिए" तो चीजें बहुत सरल हो जाती हैं। प्लस साइड पर विम सेशन शुरू करना इतना तेज़ है कि एक बार में आधा दर्जन खुला होना एक बहुत ही सामान्य बात हो गई है
Zachary K

@ZacharyK आधा दर्जन? मेरे पास आमतौर पर दिन के अंत तक एक दर्जन भर होते हैं
इज़्काटा

दिन पर निर्भर करता है
Zachary K

7

मैं VIM बनाम IDE बहस का हिस्सा बनने का इरादा नहीं करता। मुझे लगता है कि व्यक्तिगत शिकार है। लेकिन मैं बहुत सारे वीआईएम का उपयोग करता हूं और यहां इसलिए कि मुझे विम का उपयोग करना बहुत शक्तिशाली लगता है

उत्तर के दो भाग:

A. ज्यादातर चीजें VIM आपको IDE के साथ सबसे ज्यादा काम करने देती हैं, (मैं हर फीचर को डालने की कोशिश नहीं कर रहा हूं, लेकिन सिर्फ कुछ गैर-स्पष्ट हैं जो vi को सीमित करते हैं)

  1. यदि आप ctagsसक्षम हैं और करते हैं तो आप प्रोटोटाइप को आगे बढ़ा सकते हैंctrl+{

  2. आप एक साथ कई विंडो खोल सकते हैं: sp 'फ़ाइल नाम' कमांड। बेशक, कभी-कभी मैं जीवन को और अधिक आसान बनाने के लिए कई टर्मिनल खोलता हूं।

  3. शक्तिशाली वाक्य रचना हाइलाइटिंग। डिफ़ॉल्ट रूप में अच्छी तरह से अन्य सामान। इसके अलावा, कुछ आईडीई के विपरीत, यदि खुले ब्रेसिज़ का एक बेमेल है, स्ट्रिंग या बंद लोगों के साथ मेल नहीं खाता है, तो आपको बहुत स्पष्ट संकेत देता है। यह विशिष्ट के बजाय अधिकांश भाषाओं के लिए है ।

  4. आप ":!make"विंडो से बाहर जाए बिना कमांड का उपयोग करके कमांड लाइन को निष्पादित कर सकते हैं।

  5. खोज के आधार पर शब्द के आधार पर बहुत तेज़ी से ट्रैवर्स करें (यदि आप उपलब्ध हों तो री-रीएक्सएक्सपी समर्थन करें), और आप { को ट्रेस कर सकते हैं } } का उपयोग कर सकते हैंESC %

  6. कदम डीबगिंग करते समय और vi (कोड पर काम करने के लिए अन्य विंडो में) रखते हुए GDB में काम करना संभव है। जब आप फ़ाइल को बदलने का निर्णय लेते हैं, तो आप फिर से बना सकते हैं और इसे GDB में पुनः लोड कर सकते हैं।

ख। कई चीजें आपको VIM में बेहतर लगती हैं

  1. खोज और प्रतिस्थापन निश्चित रूप से बहुत अधिक शक्तिशाली है।

  2. आप अपने कस्टम लुक और फील और (ब्लैक + ग्रीन को व्हाइट + ब्लू) के रूप में बना सकते हैं और इससे भी महत्वपूर्ण बात यह है कि आपका अपना शक्तिशाली कमांड।

  3. वर्टिकल ब्लॉक का चयन करें। कोशिश करें ctrl+vऔर कर्सर को लंबवत घुमाएं। यह वास्तव में एक अकल्पनीय विशेषता है!

  4. अजीब लगता है -लेकिन एक ब्लॉक को काटने / कॉपी करने की कोशिश करें और इसे 30 बार चिपकाएं! इसे 1 बार करने से अधिक प्रयास नहीं होता है। इसके अलावा, एक या कई बार गतिविधि को फिर से करने (पूर्ववत नहीं) करने का प्रयास करें।

  5. ऑटो इंडेंटिंग, टैब नियंत्रण और स्वचालित तरीके से अपनी टिप्पणी को ब्लॉक टिप्पणियों या विशेष स्टाइल की टिप्पणियों में बदलने के लिए।

  6. विमीडिफ के साथ प्रभावी मर्ज संघर्ष।

  7. कंसोल आधारित कार्य वातावरण के साथ सबसे महत्वपूर्ण बात यह है कि आप कभी भी माउस को स्पर्श नहीं करते हैं! इसलिए यदि आप की-बोर्ड पर तेज़ हैं, तो आईडीई अच्छे नहीं हैं।

  8. एक साथ कई मशीनों, सर्वरों पर काम करें! स्पष्ट नहीं दिखता है, लेकिन कभी-कभी जब आप सर्वर पर काम करते हैं, तो आप सीधे कई मशीनों में लॉगिन करते हैं और चीजें करते हैं।

Vi में कैसे करें यदि उन सुविधाओं के गंभीर मांगों में होने के बारे में जवाब देंगे। इस साइट देखें Vimcast । बेशक, वहाँ कई हैं।

लेकिन हां, ज्यादातर कंसोल आधारित सामान पुराने जमाने का है, और मैं किसी भी तरह से आईडीई के खिलाफ कुछ नहीं कह रहा हूं।


छोटे नोट: विम में एक :makeकमांड बनाया गया है, आपको इसकी आवश्यकता भी नहीं है! (जो, जो विम का उपयोग नहीं करते हैं, टर्मिनल पर कमांड निष्पादित करते हैं)। और मुझे अभी ctrl-vकुछ सप्ताह पहले मिला था और अब मैं इसे लगातार उपयोग करता हूं, यह अविश्वसनीय रूप से उपयोगी है।
केविन

@ केविन - ठीक है मैं <कोड> के बारे में नहीं जानता था: </ code> बनाओ! यह जानना रोमांचक था। यह एक प्रकार का रोमांस है जो आपको वीआईएम के साथ मिलता है - एक कभी भी उन विशेषताओं की पूरी सूची नहीं बना सकता है जो वीआईएम आपको कभी भी कर सकते हैं !! यह हमेशा आपको आश्चर्यचकित करता है। धन्यवाद।
दीपन मेहता

हाँ, यह बहुत अच्छा है। का फायदा:make यह है कि यह स्वचालित रूप से आपको पहली त्रुटि पर ले जाता है, और आप उन्हें नेविगेट कर सकते हैं cnऔर cp, देख सकते हैं :help make। मुझे वास्तव में एहसास नहीं हुआ कि जब तक मैंने इसे देखा नहीं था; मैं आमतौर पर एक अलग विंडो और पीडब्ल्यूडी में बनाता हूं, ऐसा लगता है कि आपको मेकफाइल के समान ही होना चाहिए, हालांकि आप रूट में जाने और वहां बनाने के लिए src डायरेक्टरी में एक डाल सकते हैं।
केविन

4

मेरी राय में, विम आपको बुनियादी विशेषताओं के साथ एक बहुत मजबूत संपादक देता है, लेकिन यह आपके लिए है कि आप इसे उन स्क्रिप्ट / एडोनों के साथ मसाला दें जो आप अपनी परियोजनाओं में सबसे अधिक उपयोग करेंगे। यह संभवतः इस बात पर निर्भर करता है कि आप स्क्रिप्ट्स, डॉक्यूमेंटेशन, या फाइलों को एडिट करते हैं, जो अलग-अलग हैं।

एक उदाहरण के रूप में, मैं zencodingसमसामयिक HTML / सीएसएस संपादन के लिए उपयोग करता हूं , snipmateटेक्स्टमेट-जैसे स्निपेट्स के लिए, और अजगर से संबंधित ऐड-ऑन ( pyflakes, pep8)vimpdb , आदि) अजगर कोडिंग, जो है जो मैं सबसे अधिक बार कर लिए।

फिर ऐसे अन्य ऐडऑन हैं जिनका मैं अक्सर उपयोग नहीं करता, लेकिन फिर भी मैं उन्हें हर बार एक बार में मददगार लगता हूं, जैसे Dpasteऔर ConqueTerm

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

विम का मेरा उपयोग केवल कंसोल है, इसलिए मैं यह नहीं कह सकता कि ये उपकरण Gvim के साथ कितने उपयोगी हैं।

सभी अच्छाई के बावजूद, मैं अभी भी खुद को चला रहा हूं !grep ...या^Z + find ... हर अब और फिर।


3

मैं अपनी सारी प्रोग्रामिंग विम में करता हूं। मुझे वास्तव में यह किसी भी आईडीई की तुलना में आसान लगता है जिसका मैंने उपयोग किया है। आपके पास एक ही समय में एक ही स्क्रीन पर एक से अधिक फाइलें हो सकती हैं (यहां तक ​​कि टैब और विंडो देखें)। मैं आमतौर पर X में काम कर रहा हूं, इसलिए मेरे पास कई (6) xterm स्क्रीन खुली हैं: v में c फ़ाइलों के लिए एक (कई टैब में), vim में हेडर के लिए एक और (टैब भी), और गैर-विम विंडो: बिल्ड, डीबग , कॉन्फ़िगरेशन, इत्यादि। जब मैं शुद्ध कंसोल पर होता हूं, तब भी मैं टैब, विंडोज़, और कोड फोल्डिंग का उपयोग कर सकता हूं कि मुझे क्या चाहिए, और मैं निर्माण कर सकता हूं, और यहां तक ​​कि vim से बाहर निकलने के बिना manpages देखने के लिए, आपको बस जानने की आवश्यकता है सही आदेश। और बहुत सारे हैं, मुझे यकीन है कि मैंने उनमें से आधे में भी महारत हासिल नहीं की है। और विम की खोज और प्रतिस्थापन को हराना मुश्किल है।


1

कई बड़े पैमाने पर अनुप्रयोग (मेरा, कम से कम, दो); और मेरा अनुमान है, कई और पूरी तरह से विम में लिखे जाएंगे। इस तरह के रूप में आईडीई अभी भी एक आधुनिक नवाचार हैं , इसलिए बोलने के लिए।

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

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