कैसे विम ने मेरा दिल चुरा लिया

मुझे लगता है कि नाम का अर्थ है कि आज हम विम के बारे में बात करेंगे! यह क्या है इसकी आवश्यकता क्यों है? इसका उपयोग कैसे करें?


मेरे पिछले लेख को पढ़ने वाले कई लोग यह कह सकते हैं:



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



एक निष्पक्ष सवाल उठता है: "2018 में पुराने कार्यक्रम का उपयोग क्यों करें, और यहां तक ​​कि बिना ग्राफ़िकल इंटरफ़ेस के भी?" इसका उत्तर सरल है - यह सुविधाजनक है। मैं सहमत हूं, इसलिए आप किसी भी संपादक के बारे में बिल्कुल कह सकते हैं, लेकिन फिर भी यह मामला बहुत ही असामान्य है।

शुरुआत करने के लिए, नहीं, विम पुरानी नहीं है - वह केवल 27 साल का है। वह क्लासिक वी संपादक के उत्तराधिकारी हैं। यह आधुनिक प्रणालियों के लिए बेहतर रूप से अनुकूलित है और इसमें व्यापक क्षमता है। दूसरे शब्दों में, इसका नाम (Vi बेहतर) पूरी तरह से उचित है। मैं यह भी नोट करना चाहता हूं कि समान विचारों का एक नया कार्यान्वयन भी है - नवविराम।

अंतर क्या है?



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

मुझे लगता है कि आपके बीच ऐसे लोग (और बिल्लियाँ) होंगे जो हमेशा इस तरह के दूसरे संपादक पर स्विच करने की पेशकश का जवाब देते हैं:



खैर, नवविराम बचाव के लिए! उसके लिए धन्यवाद, अब कई आधुनिक आईडीई और "प्रोग्रामर नोटबुक" में विम कार्यक्षमता का एक एमुलेटर है। इस प्रकार, आप अपने सभी प्लगइन्स के साथ अपने पसंदीदा उदात्त पाठ या CLion का उपयोग करना जारी रख सकते हैं, साथ ही साथ कोड लिखने के संदर्भ में अपनी उत्पादकता में विशेष रूप से वृद्धि कर सकते हैं, और इससे अधिक खुशी प्राप्त करना शुरू कर सकते हैं (इस पर बाद में अधिक)। यह FAQ को बढ़ाने का एक अच्छा तरीका है, क्योंकि "असली हैकर या तो विम या एमएसीएस का उपयोग करते हैं।"

"ठीक है, मैंने कुछ पुराने संपादक का अध्ययन करने की कोशिश करने का फैसला किया, लेकिन वीम, और कम से कम एक ही Emacs क्यों नहीं?" खैर, यह एक विवादास्पद मुद्दा है। एमएसीएस एक अधिक शक्तिशाली समाधान है जो कुछ भी कर सकता है (आप इसमें सांप भी खेल सकते हैं)। हालाँकि, उसकी ताकत भी उसकी कमजोरी है। यह बहुत व्यापक और जटिल है, जो लोहे की विकास और सटीकता की उच्च जटिलता में बदल जाता है। अंतिम तर्क अब मूर्खतापूर्ण लग सकता है, क्योंकि यह एक सांत्वना संपादक भी है, लेकिन कई कार्यों (जैसे एसएसएच के माध्यम से दूरस्थ कनेक्शन) में, यह बिंदु महत्वपूर्ण हो सकता है।


(इन लाइनों के बाद Emacs उपयोगकर्ता)

खैर, हमें पता चला कि विम क्या है, लेकिन यह समझ में आता है कि इसका उपयोग क्यों और कैसे करना है।

"क्यों हर कोई विम को इतना पसंद करता है कि वे इसे जहां भी संभव हो और जहां भी असंभव है, जोड़ते हैं?" (वैसे, Emacs के पास भी है। यह मुझे अधिक से अधिक लगता है कि उन चीजों को सूचीबद्ध करना आसान है जो वहां नहीं हैं, लेकिन यह बंद विषय है।) इस प्रश्न का उत्तर मुश्किल नहीं है - इसका दर्शन।

आप केवल VIM में पाठ शुरू और टाइप नहीं कर सकते। इसके लिए एक अलग मोड है - “इन्सर्ट मोड”। जब आप प्रोग्राम शुरू करते हैं, तो आप अपने आप को सामान्य मोड में पाते हैं, जिसमें आपको टेक्स्ट एडिट करने के लिए कमांड टाइप करने और इस एडिटर के विभिन्न मोड के बीच स्विच करने का अवसर दिया जाता है। "लेकिन यह असहज है! मैं केवल पाठ लिखना चाहता हूं! " विशुद्ध रूप से तकनीकी रूप से, एक टाइपराइटर भी इस कार्य के लिए उपयुक्त है, लेकिन मैं अभी भी व्यंग्य के बिना जवाब दूंगा। यदि अधिकांश संपादक कोड लिखने पर ध्यान केंद्रित करते हैं, तो विम इसे पाठ संपादन में स्थानांतरित कर देता है और इसे अपने तरीके से करता है।


(वास्तव में, इस तस्वीर में एक गहरा सबटेक्स्ट है। यदि एक मिनट है, तो जापानी आरपीजी की पर्सन श्रृंखला के बारे में पढ़ें।)

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



आइए उदाहरणों के एक जोड़े को देखें, लेकिन पहले एक और तस्वीर (इस बार कुछ उपयोगी के साथ) पकड़ें:



1)। d2w
==> दो शब्द हटाएं।



2)। AMew<Esc>
==> लाइन "मेव" के अंत में संलग्न करें और सामान्य मोड पर लौटें।



3)। f(ci(Pakahontas<Esc>
==> कोष्ठक की एक जोड़ी का पता लगाएं और अपने भीतर की सामग्री को "पकाओनटास" में बदल दें और सामान्य मोड पर लौटें।



आप देखते हैं? बिल्कुल जटिल कुछ भी नहीं! बेशक, इस दृष्टिकोण का उपयोग करने और निरंतर अभ्यास करने की आवश्यकता है, क्योंकि आप केवल सभी संयोजनों को नहीं सीख सकते हैं - आपको उन्हें महसूस करने की आवश्यकता है। मैं विम में कोड लिखता हूं क्योंकि यह टाइप करने के लिए तेज है (मैं पहले से ही धीरे-धीरे टाइप करता हूं, जैसा कि आपने देखा होगा, और मुझे नहीं पता कि मैं कैसे अंधा कर सकता हूं), लेकिन क्योंकि यह अधिक प्राकृतिक है। Ctrl, शिफ्ट या ऑल्ट के ढेर के बजाय (उनके साथ कमांड्स हैं, लेकिन उनमें से कुछ हैं), एक बहुत ही समझने योग्य और, सबसे महत्वपूर्ण, मानवीय संपादन भाषा।


(अप्रत्याशित रूप से, सही?)

लेकिन इससे पहले कि हम खत्म करें, मैं कुछ टिप्पणियां डालना चाहता हूं:

I. इस तथ्य के बावजूद कि विम में आप तीर और माउस का उपयोग कर सकते हैं (दूसरा "~ .vimrc" फ़ाइल में कॉन्फ़िगर किया गया है), यह कड़ाई से अनुशंसित नहीं है। इसमें टेक्स्ट (और स्क्रीन) पर कर्सर ले जाने के लिए अधिक दिलचस्प कमांड्स का एक समुद्र है, केवल वे एडिटिंग कमांड्स की तरह सहज नहीं हैं और आपको उन्हें रटना होगा।


(यह हैकिंग का समय है!)

द्वितीय। विम में, कई अन्य संपादकों की तरह, एक कमांड मोड है जिसे ':' कुंजी दबाए जाने पर कहा जाता है। प्रतीक '!' इसमें एक दोहरी अर्थ है:

क) यदि यह ':' के तुरंत बाद खड़ा होता है, तो टर्मिनल के लिए एक पूर्ण कमांड इसका अनुसरण कर सकता है। यद्यपि उनमें से कुछ को संपादक के आदेश के रूप में दोहराया गया है, यह उपयोगी हो सकता है, उदाहरण के लिए, संकलक को कॉल करने के लिए।

b) यदि यह Vim कमांड के बाद आता है, तो यह फ़ाइल में परिवर्तन को सहेजे बिना इसे निष्पादित करेगा। वैसे, यह एक बग के साथ जुड़ा हुआ है (या, यदि आप चाहते हैं, तो एक सुविधा) - यदि आपने पाठ के साथ कुछ किया है, तो भले ही आप इसे अपनी मूल स्थिति में लौटा दें, अगर आप इसे नहीं बचाते हैं या निर्दिष्ट नहीं करते हैं, तो संपादक बंद नहीं होगा '!'।


(क्या आपने पहले ही महसूस कर लिया है कि विम को आपके डेटा की परवाह कैसे है?)

तृतीय। विभिन्न संपादक और प्लगइन सेटिंग्स को उपरोक्त "~ / .vimrc" में बदला जा सकता है। हर स्वाद और रंग के लिए सेटिंग्स हैं, केवल वे फ़ाइल में ही नहीं हैं। डिफ़ॉल्ट रूप से, यह खाली है। आपके लिए आवश्यक पैरामीटर खोजने के लिए, ": सहायता" कमांड का उपयोग करें। इसके बाद, आप किसी विशिष्ट घटक या प्लग-इन का नाम जोड़कर तुरंत उस सूचना पर जा सकते हैं जिसमें आप रुचि रखते हैं। लेकिन, निश्चित रूप से, इस संबंध में इंटरनेट अधिक आरामदायक होगा।



चतुर्थ। विम (उदाहरण के लिए, 'q') में कई कमांड हैं जिन्हें उपयोगकर्ता द्वारा परिभाषित किया गया है ("~ / .vimrc" में)। हालांकि, यदि आप सीधे उनके लिए एक मूल्य निर्धारित करने की कोशिश करते हैं, तो उन्हें देरी से ट्रिगर किया जाएगा, क्योंकि वे खुद के बाद एक दूसरी कमान की उम्मीद करते हैं (उन्हें निर्धारित किया जाना चाहिए)। यदि आपको एक-बटन कमांड की आवश्यकता है, तो मैं 'एस' का उपयोग करने की सलाह देता हूं, क्योंकि इसकी कार्यक्षमता व्यावहारिक रूप से 'ग' के समान है। स्थानापन्न को प्रतिस्थापित किया जा सकता है, इसलिए बोलने के लिए।



वी। टीम '।' इस संपादक में अविश्वसनीय शक्ति है। वह जानती है कि पिछली कमांड को कैसे दोहराना है (या उनसे पूरा वाक्य)। सिद्धांत रूप में, यदि आप एक मैक्रो रिकॉर्ड नहीं करना चाहते हैं, तो यह "पेस्टीज़" के साथ कोड भरने के लिए एक उत्कृष्ट उपकरण है:



छठी। विम मुझे कुछ पुराने 48K ZX स्पेक्ट्रम कंप्यूटर की याद दिलाता है। उनके पास एक-बटन कमांड भी थे, लेकिन वे बेसिक प्रोग्रामिंग भाषा के लिए थे। इस प्रकार, डेवलपर्स ने कार्यक्रम के लिए आवश्यक रैम की मात्रा को कम करने की कोशिश की।



एक प्रशिक्षण सामग्री के रूप में, मैं vimtutor कार्यक्रम की सलाह देता हूं। विशुद्ध रूप से तकनीकी रूप से, यह केवल विम में एक छोटे ट्यूटोरियल के साथ एक फ़ाइल खोलता है, लेकिन यह दृष्टिकोण आपको सैद्धांतिक भाग के अध्ययन के साथ समानांतर में अभ्यास करने की अनुमति देता है। और फिर अभ्यास, अभ्यास, और, फिर से, अभ्यास करें!

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

मैं आपको खुशी, स्वास्थ्य, और केडीई नहीं गिरने की कामना करता हूं!

सूत्रों का कहना है
1) विषय पर:
a) वास्तव में, vimtutor
b) कीबोर्ड के साथ चित्र viemu वेबसाइट से लिया गया था
c) मैंने इस विषय पर एक वाइकबुक भी पढ़ा।
2) बंद विषय:
a) Youtube पर पर्सन सीरीज के बारे में उनके विस्तृत विश्लेषण के साथ कई वीडियो हैं। संभवतः सबसे मूल्यवान फिलिनोव के प्लेस काकाला के वीडियो हैं, लेकिन लेखक अब तक दूसरे दूसरे भाग (यह एक टाइपो नहीं है) पर रोक दिया है।
बी) स्पेक्ट्रम के बारे में हाल ही में एक अच्छा वीडियो दिमित्री मोइसेव रिकॉर्ड किया गया
c) मेरे प्रोफाइल पिक्चर से पिक्चर का लेखक - फुल-केलर

Source: https://habr.com/ru/post/hi426255/


All Articles