2009-08-21 12 views
5

मैं हाल ही में, vi उठा कुछ ट्यूटोरियल के माध्यम से जा रहा है और इसकी आदत हो की कोशिश कर रहा शुरू कर दिया। लेकिन मेरे पास अभी भी इसके बारे में कुछ सवाल हैं।vi के लिए सामान्य उपयोग के मामले क्या हैं?

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

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

+1

ध्यान दें कि vi! = Vim। अधिकांश लिनक्स विम या (विम-टिनी) के साथ आते हैं और मुझे लगता है कि ओएस एक्स भी विम के साथ आता है लेकिन मुझे यकीन है कि बीएसडी/सोलरिस/संभवतः अन्य * निक्सेस जहाज अधिक बुनियादी कार्यान्वयन के साथ हैं। विम विशेष रूप से प्रोग्रामिंग के लिए बहुत अधिक प्रदान करता है जबकि एसआईएस/वीआई (एम) एक यूनिक्स बॉक्स में आपको वीआई से निपटने के लिए मजबूर कर सकता है (यदि यह लिनक्स बॉक्स नहीं है) जो अभी भी बहुत शक्तिशाली टेक्स्ट संपादन प्रदान करता है लेकिन सिंटैक्स हाइलाइटिंग जैसी कोई अच्छी चीजें नहीं । पुराने "बीप बार-बार" और "सबकुछ तोड़ना" लगता है कि वीआई के लिए अधिक लागू होता है और फिर बहुत निराशा का कारण बन सकता है। –

उत्तर

24

लोग, निम्न कारणों से कोडिंग के लिए Vi (एम) की तरह गैर आईडीई संपादक का उपयोग

  1. वे गैर distractive हैं, तो आप काम पर ध्यान केंद्रित करने की अनुमति देता है।
  2. वे आपको स्क्रीन क्षेत्र को अव्यवस्थित नहीं करते, उंगली
  3. आप अपने हाथों को बाहर ले जाने के लिए होने के स्ट्रोक पर
  4. वे
  5. वे बेहतर है/तेजी से/कूलर पाठ हेरफेर तेजी से कर रहे हैं आप और अधिक कोड स्थान प्रदान करता है माउस को पकड़ने के लिए कीबोर्ड के नीचे, इसे यहां और वहां खींचें और क्लिक करें।
  6. उनके पास डिबगर, दस्तावेज़ दर्शक, आदि जैसे अन्य टूल्स का समर्थन करने के लिए लचीलापन भी है
  7. उनके पास कोड फोल्डिंग जैसी चीजें प्राप्त करने के तरीके भी हैं।

एक सामान्य प्रोग्रामर जिसका आदर्श काम चक्र बैठते हैं, कोड, परीक्षण, डिबग, और अधिक कोड, परीक्षण डिबग लिखने है .. Vi काम तेजी से और अधिक कुशलता से किया जाना एक साधारण अभी तक शक्तिशाली वातावरण प्रदान करता है।

कोई है जो कुछ आईडीई का उपयोग कर के वर्षों के लिए किया था के लिए, यह कुछ प्रागैतिहासिक उपकरण का उपयोग कर की तरह हो सकता है, लेकिन एक बार वे शुरुआती दिनों के माध्यम से किया गया है, तो कोई पीछे है। वे महसूस करेंगे कि कोई बेहतर चीज नहीं है।

+5

+1 बहुत अच्छे अंक। विशेष रूप से चौथा। – LB40

+3

विम * है * माउस बकवास के बिना एक IDE – pestilence669

+5

ताकि लोगों को ... 1) बहुत आसान विचलित 2) एक बड़ी स्क्रीन 3) एक तेजी से मशीन मिलना चाहिए मिलना चाहिए 4) भी की शॉर्टकट जानने के लिए आलसी हैं कर रहे हैं एक असली आईडीई 5) एक बार फिर से - बहुत एक असली आईडीई का शॉर्टकट जानने के लिए आलसी हैं 6) पता नहीं है कोई वास्तविक आईडीई 7) गुप्त सेटिंग्स दर्ज करना चाहते हैं प्लग-इन इंस्टॉल करने के लिए कैसे सुविधाओं वे मुक्त करने के लिए मिलता है सक्षम करने के लिए आदेश एक असली आईडीई बस मजाक कर के साथ - मैं छोटे कार्यों और दूरदराज के संपादन के लिए vi पसंद है, लेकिन मैं वास्तविक सॉफ्टवेयर विकास के लिए उपयोग नहीं होता। – FRotthowe

6

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

3

यहाँ मुझे इसका उपयोग क्यों है।

  1. यह
(चारों ओर शब्द/पैराग्राफ आदि आधारित सामान्य कार्यों के लिए कीस्ट्रोक्स, परिचालन)
  • यह कई प्लेटफार्मों भर में उपलब्ध है और सभी यूनिक्स मशीनों
  • इसका इस्तेमाल करने के लिए तेजी से है पर है शुरू करने तेज है

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

  • +0

    जबकि आप आईडीई उत्पादकता पर सही हैं - आप हमेशा अपने हाथों को माउस तक पहुंचने में सक्षम बनाने के लिए अतिरिक्त टूल इंस्टॉल कर सकते हैं। मुझे पता है कि एक .NET प्रोग्रामर माउस से नफरत करता है और कीबोर्ड के उपयोग के लिए उसका पूरा पीसी सेटअप (यहां तक ​​कि फ़ायरफ़ॉक्स और वीएस 2008) – Audioillity

    0

    के रूप में usuall: काम आपको क्या करना है के आधार पर अपने उपकरण चुनें! ;-) मैं विम और विजुअल स्टूडियो का उपयोग कर रहा हूं। आपको केवल एक ही चुनना नहीं है।

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

    IDEs विशेष उपकरणों, जो समस्याओं वे के लिए बने हैं के लिए अच्छा कर रहे हैं। विम एक अविश्वसनीय लचीला और शक्तिशाली सामान्य उद्देश्य उपकरण है।

    7

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

    विम शुरू करने के लिए तेजी, अत्यंत का उपयोग करने के लिए तेजी से और एक IDE ऐसा कर सकते हैं (अनुकूलन का एक सा के साथ) सबसे काम कर सकें। यह कोड पूर्ण करने, कोड ऑटो इंडेंटेशन और सुधार करने के लिए करेगा और यह refactoring पर बहुत अच्छा है। project plugin http://www.vim.org/scripts/script.php?script_id=69 बहुत सारी फाइलों के साथ परियोजनाओं को प्रबंधित करना बहुत आसान बनाता है और taglist plugin http://www.vim.org/scripts/script.php?script_id=273 स्रोत कोड ब्राउज़ करने के लिए बहुत अच्छा है। यह आपको प्रत्येक के लिए एक अलग उपकरण का उपयोग किए बिना पाइथन कोड, असेंबली कोड और लेटेक्स दस्तावेज़ के साथ सी कोड को एक साथ खोलने की अनुमति देता है।

    कुल मिलाकर, हालांकि, मुझे लगता है कि वास्तव में एक मूल्यवान बात यह है कि विम आप देता है वहाँ बहुत कुछ अन्य संपादकों करते हैं और मैं यह बहुत मुश्किल है कि कम करने के लिए मिलेगा कि:

    : मैं तीन भागों इस तरह की एक ऐसी विंडो विभाजन हो सकता है

    GVIM Split Window http://thumbnails19.imagebam.com/4617/5414c746160790.gif

    subwindows से प्रत्येक या तो एक अलग फ़ाइल या (स्क्रीनशॉट के रूप में) फ़ाइल का एक अलग हिस्सा दिखा सकते हैं। मुझे कल्पना है कि Emacs यह कर सकते हैं (हालांकि मैं गलत हो सकता है), लेकिन मुझे संदेह है कि कई आईडीई कर सकते हैं। यह refactoring और फ़ाइल के अन्य भागों के संदर्भ के लिए अमूल्य हो सकता है।

    +0

    नेटबीन्स टैब को खींचकर और जहां चाहें इसे बिछाने के द्वारा ऐसा कर सकते हैं, आप यह भी अनुकूलित कर सकते हैं कि आप इसे प्रत्येक विंडो को बस स्थानांतरित करके कहां चाहते हैं। – user103219

    +0

    यह दिलचस्प है, धन्यवाद razass: मैं किसी भी संपादक में नहीं आऊंगा जो पहले एक ही फाइल के कई दृश्य दिखा सकता है। – DrAl

    +0

    +1 इस तथ्य के लिए कि आपके उदाहरण में स्रोत "सीस्कोप" था, जो कि 20 साल तक मेरे दिल के करीब और प्रिय है। – Dan

    2

    मैंने कुछ ट्यूटोरियल देखा कि VI को आईडीई के रूप में कैसे उपयोग किया जाए, लेकिन यह सबसे अच्छा अजीब लग रहा था।

    बहुत शुरुआत में ऐसा करने की एक बात है: सौंदर्यशास्त्र की अपनी भावना को फेंक दें। आप कभी वीआईएम में एक ही तरह का ग्राफिकल अनुभव प्राप्त करेंगे जैसा कि आप एक सभ्य आईडीई में करते हैं।

    उस ने कहा, वीआईएम वास्तव में एक पूर्ण उड़ाए गए आईडीई की कई सुविधाएं प्रदान करता है और इसके अलावा कई फायदे हैं। मैं लगभग अपने सभी विकास कार्यों और के सभी के लिए अपने टेक्स्ट दस्तावेज़ों (Vim-LaTeX का उपयोग करके) के लिए वीआईएम का उपयोग करता हूं - भले ही मैंने वास्तव में ऐप्पल के कार्यालय सूट, iWorks के लिए पैसे का भुगतान किया हो।

    एक बिंदु है जो अभी भी मुझे परेशान कर रहा है, हालांकि: I can't get IntelliSense to work। मेरे लिए, यह एक बड़ी समस्या है, खासकर जब वीबी, सी # या जावा जैसी भाषाओं का उपयोग करते हैं, जिसके लिए उत्कृष्ट आईडीई समर्थन मौजूद है।

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

    +0

    आप ViEmu के बारे में जानते हैं?फिर आप विम * और * इंटेलिजेंस प्राप्त करते हैं। –

    +0

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

    2

    मैं अक्सर एक दूरस्थ सिस्टम पर काम करते हैं, एक क्लस्टर, या एक बिना सिर बॉक्स पर संपादन config फ़ाइलों के लिए प्रोग्रामिंग। इन सभी को फ़ाइल हस्तांतरण, एक नियमित आईडीई, और एक और फ़ाइल हस्तांतरण के साथ किया जा सकता है, लेकिन एसएसएच के माध्यम से केवल वीआईएम का उपयोग करने के लिए यह बहुत तेज़ है।

    3

    हमेशा की तरह सुंदर, (छ) vim सब कुछ है कि एक IDE कर सकते हैं ... और कुछ अधिक करने के लिए विन्यस्त किया जा सकता नहीं हालांकि। आपको बस rightplugins ढूंढना होगा।

    करने के लिए इस्तेमाल हो रही है की अवधि के बाद, अन्य आईडीई के और पाठ संपादक तुलना में अनाड़ी और अक्षम गिर गया होगा।

    vim नशे की लत है।

    1

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

    कोड स्वरूपण

    प्रारूपण = साथ किया जाता है। आप अपने लिए स्वरूपण करने के लिए बाहरी कार्यक्रम के बराबर बिंदु भी इंगित कर सकते हैं।

    आयात आयोजन

    विम अप्रयुक्त आयात को दूर करने में सक्षम नहीं होगा, लेकिन आप सभी संकुल से अधिक

    :'<,'>sort 
    

    सरल सिंहावलोकन आयात लाइनों का चयन करता है, तो

    :vs . 
    

    यह वर्तमान कार्यशील निर्देशिका वाली एक लंबवत विंडो खुल जाएगा :)

    निष्कर्ष में, vim आपके आईडीई को प्रतिस्थापित नहीं कर सकता है लेकिन यह आपको अपना टेक्स्ट संपादित करने देगा।

    1

    आप (इसे स्थापित या आसानी से) इसे पा सकते हैं लगभग कहीं भी - Runs on all systems that can implement the standard C library, including UNIX, Linux, DOS, Windows, Mac, BeOS, and POSIX-compliant systems.

    एक दूरस्थ सर्वर में प्रवेश करें और आत्मविश्वास से संपादित एक कॉन्फ़िग फ़ाइल अमूल्य है करने की क्षमता।

    0

    यह स्पष्ट रूप से एक गर्म विषय है इसलिए मैं कारणों की एक सूची देने जा रहा हूं कि मैं कोडिंग के लिए आईडीई संपादक क्यों पसंद करता हूं। 1) मैं अपने कोड के खंडों को फोल्ड करने में सक्षम होना पसंद करता हूं (मुझे नहीं पता कि वी (एम) कर सकते हैं) ऐसा करने के लिए आदेश याद किए बिना या टाइप करें।

    2) मैं के रूप में मेरे संकलन आदेश याद करना पड़ता था एक क्लिक के संकलन बटन/कमांड पसंद करते हैं और यह बिना विकल्प

    3) मैं आसान उजागर कॉपी पेस्ट संचालन पसंद के पुस्तकालय है ..... ... आह ने इसे सोया !!

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

    +0

    अंतिम पैराग्राफ बेहतर वर्गीकरण बयान के रूप में प्रस्तुत किया गया होगा, जो वर्णन करता है कि आप क्या करते हैं। संपादक कई लोगों के लिए एक गर्म बटन हैं, और किसी विशेष संपादक के बारे में आप जो भी सोचते हैं उसके बारे में कोई भी बयान है कि सभी के पास लौ युद्ध शुरू करने की क्षमता है। –

    0

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

    विम आपको पर्यावरण के भीतर मनमाने ढंग से खोल कमांड चलाने की अनुमति देगा और इसमें शक्तिशाली खोज और प्रतिस्थापन सुविधाएं होंगी।

    तो एक आईडीई उनमें से अधिकतर प्रदान करेगा, पारंपरिक जीआईआई आधारित आईडीई प्रदान करने के लिए क्या होगा? यह आसान है, यह सीएलआई पर चलता है।

    यह मुझे मेरे देव बॉक्स, रन स्क्रीन (निश्चित रूप से अपरिचित के लिए चेकआउट करने के लिए कुछ है: http://www.gnu.org/software/screen/) में लॉग इन करने और मेरे देव बॉक्स पर मेरे स्क्रीन सत्र में एकाधिक विम सत्र चलाने की अनुमति देता है। अब जब मैं दिन के लिए काम छोड़ देता हूं, तो मैं अपना काम सत्र छोड़ सकता हूं जैसे कि मैंने इसे छोड़ दिया, यहां तक ​​कि बिल्ड चलाने के दौरान भी। जब मैं अगले दिन काम करता हूं तो मैं अपने पर्यावरण से जुड़ सकता हूं जैसे कि मैंने कभी नहीं छोड़ा।

    विशेष रूप से विम या वी को पसंद करने का एक अन्य कारण यह है कि यह लगभग किसी भी यूनिक्स पर्यावरण पर पाया जा सकता है।

    +0

    हाँ। vi सी ++ के लिए सी क्या है vim है। –

    संबंधित मुद्दे