2012-12-27 13 views
21

विम में कुछ आदेश पहले कोलन टाइप करते हैं (:) उदाहरण के लिए। : एक फ़ाइल को बचाने और छोड़ने के लिए wq। जबकि कुछ आदेशों को एक कोलन की आवश्यकता नहीं है उदाहरण के लिए Replace कमांड (आर)। मैं जानना चाहता हूं कि दोनों दृष्टिकोणों के बीच क्या अंतर है? क्या कोई विशिष्ट नियम है जिसके लिए एक कोलन की आवश्यकता होती है और कौन सा नहीं?क्यों विम में कुछ आदेशों को एक कोलन की आवश्यकता होती है जबकि कुछ नहीं करते हैं?

+0

अधिकतर अक्सर इस्तेमाल किए जाने वाले आदेश "noramal" कमांड बन जाते हैं जहां आपको कोलन की आवश्यकता नहीं होती है। चूंकि सामान्य कमांड के रूप में उपयोग करने के लिए केवल इतना ही वर्ण हैं, शेष आदेशों को इसमें शामिल किया गया है: कमांड – yosukesabai

+1

@ योसुकेसाबाई: हालांकि यह तार्किक लगता है, यह [vi history] (http: //en.wikipedia) की एक संशोधित व्याख्या है। org/wiki/Vi)। –

उत्तर

28

आपको स्पष्टीकरण के लिए, विम के पूर्ववर्ती history of vi पर ध्यान देना होगा। बहुत समय पहले, जब एक कीबोर्ड और संलग्न प्रिंटर (टर्मिनल) के साथ पाठ संपादन किया जाना था, तो कोई माउस नहीं था, कागज के अलावा कोई प्रदर्शन नहीं था, और इसलिए, छोटी अंतःक्रियाशीलता। संपादन में पूर्व नामक एक संपादक के माध्यम से लघु, निमोनिक आदेश शामिल थे। आपने एक या कई पंक्तियों को संबोधित करने वाला आदेश जारी किया है (उदा। :substitute/foo/bar), और संपादक ने आज्ञा मानी। यदि आप कमांड के प्रभावों के बारे में निश्चित नहीं थे, तो आप :print कुछ लाइनें कर सकते थे।

समय पारित कर दिया, वीडियो टर्मिनलों दिखाई दिया, और vi संपादक शामिल पूर्व आदेश (क्योंकि वे उपयोगी थे और प्रोग्रामर उन्हें इस्तेमाल किया गया है), लेकिन शुरू की और अधिक इंटरैक्टिव आदेशों को हटाना (x), सम्मिलित की तरह (i) , और इसी तरह। पूर्व आदेश अभी भी कमांड लाइन मोड में उपलब्ध हैं, जो : के साथ शुरू किया गया है, और के साथ संपन्न दर्ज करें।

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

:help vim-modes आपको उत्कृष्ट और व्यापक सहायता सुविधाओं में एक प्रारंभिक बिंदु देता है।

+0

कुछ '.vimrc' फ़ाइलों में, मैं एक ही समय में ': map' और' map' दिखाई देता हूं। उनमें से दोनों त्रुटियों के बिना काम करते हैं। जिसे सही माना जाता है? – nn0p

+1

@ nn0p: अग्रणी ': '' vimrc' में वैकल्पिक है; दोनों सही हैं, लेकिन इसे छोड़ने वाला छोटा रूप कहीं अधिक आम है। –

+0

इसे इंगित करने के लिए धन्यवाद। क्या इसके लिए कोई संदर्भ है? मैंने वेब की खोज की और इसे कुछ भी नहीं समझा। – nn0p

9

आप vim के विभिन्न तरीकों में हैं। vim में 6 मूलभूत मोड हैं। वे

  1. Normal mode
  2. Visual mode
  3. Select mode
  4. Insert mode
  5. cmdLine mode
  6. Ex mode

हैं Normal मोड आप डॉन में : टाइप करने की आवश्यकता नहीं है, इस मोड को Esc दबाकर पहुंचा जा सकता है।

+0

* cmdLine मोड * और * पूर्व मोड * के बीच क्या अंतर है? दोनों मोड ': 'दबाकर दर्ज किए जाते हैं। – nn0p

+0

यह वही आदेशों का उपयोग करता है, लेकिन इसमें कुछ अंतर हैं जिन्हें 'पूर्व-मोड में सहायता' में समझाया गया है। विशेष रूप से, इसमें ** कोई सामान्य कमांड लाइन संपादन ** नहीं है, और प्रत्येक आदेश के बाद स्क्रीन अपडेट नहीं होती है। – seaturtle

11

कमांड जिन्हें "कॉल करने की आवश्यकता नहीं है" को "सामान्य (मोड) कमांड" कहा जाता है।

आदेश जो "कोलों" की आवश्यकता होती है उन्हें "पूर्व आदेश" कहा जाता है।

विम, मोडल संपादक होने के नाते, आपके पास मौजूद मोड के संदर्भ में कई कमांड हैं। सबसे स्पष्ट प्रभाव यह है कि विभिन्न संदर्भों में एक ही कुंजी को मारने से विभिन्न परिणाम मिल सकते हैं।

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

आप सामान्य मोड झटका, डाल, हटाने, अपने कर्सर चारों ओर ले जाने ... सामान्य विधा है करने के लिए स्विच करने के लिए तुम कहाँ करना है-फ़ोकस संपादन विम के लिए प्रसिद्ध है और dcggsi/.* और इतने पर जैसे आदेशों का उपयोग ।

आप सामान्य/* दृश्य * मोड में : मारकर कमांड लाइन मोड में प्रवेश। यह आम तौर पर दो बातों के लिए प्रयोग किया जाता है:

  • व्यवस्थापकीय कार्य (डिस्क के लिए लिख, बफ़र्स स्विचिंग, फ़ाइलों को खोलने ...) :m10 या :t1 या :g/foo/d तरह
  • उपयोग शांत संपादन आदेशों ...

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

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