तुम्हाला उठण्यात आणि धावण्यास मदत करण्यासाठी मूलभूत विम आदेश

मिकीला भेटा:

जेव्हा आम्ही मिकीला शेवटचे पाहिले तेव्हा तो फक्त एक महत्त्वाकांक्षी व्यापारी होता ज्याने त्याच्या लिंबूपाणी स्टँडसाठी दररोजच्या विक्रीच्या आकडेवारीचा मागोवा ठेवण्यासाठी प्रोग्रामिंगचा वापर केला. आपण मिकीच्या मागील साहसांबद्दल अधिक वाचू शकता येथे.

असे दिसून आले की मिकीने त्याच्या पहिल्या प्रकल्पाचा इतका आनंद घेतला की तो आता आपला सर्व मोकळा वेळ कोड लिहिण्यासाठी वापरतो जो त्याच्या व्यवसायाचे अक्षरशः प्रत्येक कार्य व्यवस्थापित करतो. आज शाळेत मिकीने 7 व्या वर्गातील काही छान विद्यार्थ्यांना Vim नावाच्या गोष्टीबद्दल बोलताना ऐकले, पण त्याला त्याबद्दल काहीही माहिती नाही. मिकी Google वर जातो आणि आणखी काही माहिती शोधण्याचा प्रयत्न करतो.

विम म्हणजे काय?

मिकीला जे सापडले ते पाहून आश्चर्यचकित झाले. असे दिसून आले की विम हा मजकूर संपादकापेक्षा अधिक काही नाही, जरी एक अत्यंत शक्तिशाली आहे. दुर्दैवाने Mikey साठी Vim वापरताना थोडीशी शिकण्याची वक्रता येते, परंतु Mikey ला Google वर काही मूलभूत आदेश सापडले ज्याचा तो प्रयत्न करू इच्छितो. चला Mikey सोबत कोड करू आणि या Vim बद्दल काय आहे ते पाहू.

विममध्ये प्रवेश करत आहे

विममध्ये प्रवेश करणे अगदी सोपे आहे. फक्त तुमच्या टर्मिनलद्वारे निर्देशिकेवर नेव्हिगेट करा आणि कमांड लाइनवर vim insert_file_name_here इनपुट करा. हे Vim मध्ये तुमची फाईल उघडेल.

घाला/कमांड मोड

जेव्हा ते उघडते तेव्हा विम कमांड मोडमध्ये असतो. कमांड मोडमध्ये राहिल्याने तुम्हाला तुमचा मजकूर Vim कमांडसह नेव्हिगेट आणि संपादित करण्याची अनुमती मिळेल. ते नेहमी तुमच्या अपेक्षेप्रमाणे कार्य करत नाही, तुम्ही हे मानक मजकूर संपादकाप्रमाणे वापरण्याचा प्रयत्न करत आहात असे गृहीत धरून. या पोस्टमध्ये काही मुद्दे आहेत जेथे तुमच्या फाइलमध्ये कॉपी/पेस्ट करण्यासाठी मजकूर असेल. तुम्ही तुमचा कॉपी केलेला मजकूर पेस्ट करण्यासाठी जाताच, i की क्लिक करून इन्सर्ट मोडमध्ये प्रवेश करण्याचे सुनिश्चित करा. चला आमच्या फाईलमध्ये काही मजकूर insert टाकूया:

Three words.
Two WORDs…!

इन्सर्ट मोडमध्ये असताना तुम्ही नेहमीप्रमाणे कॉपी आणि पेस्ट करू शकता. कमांड मोडमध्ये परत येण्यासाठी, फक्त esc की दाबा.

h/j/k/l आदेश

कमांड मोडच्या आत किंवा बाहेर ज्या प्रकारे आपल्याला सवय असते त्याप्रमाणे Vim माउसला प्रतिसाद देत नाही. परिणामी, नेव्हिगेशन कीबोर्डद्वारे केले जाते. विम कीबोर्ड दिशात्मक बाणांना प्रतिसाद देत असताना, h/j/k/l आदेशांची सवय करणे सर्वोत्तम सराव आहे:

h — moves the cursor one space left
j — moves the cursor one space down
k — moves the cursor one space up
l — moves the cursor one space right

तुम्ही सध्या पहात असलेल्या फाइलमधील h/j/k/l कमांडपैकी कोणताही वापर करून पहा. कर्सर हलविण्यात सक्षम असणे ही एक चांगली सुरुवात आहे, परंतु एका वेळी एक जागा हलवणे फारसे कार्यक्षम नाही. कर्सर एका वेळी एकापेक्षा जास्त जागा हलवण्याचे काही मार्ग पाहू

'WORD' वि 'शब्द'

पुढे जाण्यापूर्वी, खालीलपैकी अनेक कमांड्स 'शब्द' आणि 'WORDS' दरम्यान नेव्हिगेट करण्यासाठी डिझाइन केलेले आहेत हे निदर्शनास आणणे महत्त्वाचे आहे. VIM Adventures द्वारे परिभाषित केल्याप्रमाणे शब्द आणि शब्दांमधील फरक ओळखण्यासाठी Mikey सोबत थोडा वेळ घ्या:

  • शब्दामध्ये अक्षरे, अंक आणि अंडरस्कोअर किंवा इतर रिक्त नसलेल्या वर्णांचा क्रम असतो, पांढर्‍या जागेने (स्पेस, टॅब, EOL) विभक्त केलेला असतो. रिक्त ओळ देखील एक शब्द मानली जाते.

Three words.

  • शब्दामध्ये रिक्त नसलेल्या वर्णांचा क्रम असतो, पांढर्‍या जागेने (स्पेसेस, टॅब, ईओएल) विभक्त केलेला असतो. रिक्त ओळ देखील शब्द मानली जाते

Two WORDS…!

‘w’ vs ‘W’

w आणि W कमांड अनुक्रमे शब्द आणि शब्दांवर फिरतील.

w कमांड कर्सरला पुढील शब्दाच्या सुरूवातीस पुढे नेईल. आधीचे आमचे शब्द उदाहरण पाहू:

- three w commands will navigate over each of the words below
Three words.

आता आधीचे आमचे शब्द उदाहरण पाहू:

- two W commands will navigate over each of the WORDs below
Two WORDs…!

Mikey सह नवीन w/W कमांडची चाचणी घ्या.

‘e’ vs ‘E’

e आणि E कमांड w/W प्रमाणेच कार्य करतात, त्याशिवाय e/E कर्सरला सुरुवातीऐवजी पुढील शब्दाच्या शेवटकडे घेऊन जाईल. ई/ई आदेश वापरून पाहण्यासाठी मिकी त्याच्या मजकूर फाइलमध्ये खालील गोष्टी जोडतो. चला त्याच्याबरोबर करूया:

sugar-free gum

‘b’ vs ‘B’

लक्षात ठेवा w/W आदेश तुम्हाला पुढील शब्द/शब्दाच्या सुरूवातीस कसे घेऊन जातील? b/B कमांड्स तुम्हाला मागील शब्द/WORD च्या सुरुवातीला घेऊन जातील. Mikey हे पुढील उदाहरण त्याच्या मजकूर फाइलमध्ये जोडणार आहे आणि प्रत्येक w/W, e/E आणि b/B कमांड वापरून पहा. त्याच्याबरोबर करशील का?

Tuesday’s doctor appt.

‘0’ vs ‘$’

शब्दावरून शब्द उडी मारणे नक्कीच उपयोगी पडेल, परंतु जर आपल्याला आपला कर्सर एका ओळीच्या सुरुवातीपासून एका ओळीच्या शेवटपर्यंत मिळवायचा असेल तर? वैकल्पिकरित्या, आपला कर्सर एका ओळीच्या शेवटी असताना आपल्याला ओळीच्या सुरुवातीला परत जायचे असेल तर? शब्दानुसार शब्द उडी मारल्याने अनेक कीस्ट्रोक लागू शकतात. सुदैवाने, आमच्याकडे 0 आणि $ कमांड आहेत. Mikey प्रमाणे करा आणि तुमच्या मजकूर फाईलमध्ये खालील कॉपी/पेस्ट करा, नंतर मागील कोणत्याही कमांडसह 0/$ कमांड वापरून फाइल नेव्हिगेट करण्याचा प्रयत्न करा:

Fourscore and seven years ago our fathers brought forth on this continent, a new nation, conceived in Liberty, and dedicated to the proposition that all men are created equal.

‘x’ vs ‘X’

x कमांड आम्हाला कर्सरच्या स्थितीनंतर जागा हटविण्यास सक्षम करते. X कमांड कर्सरच्या स्थानापूर्वीची जागा हटवते. मिकी x/X कमांडचा प्रयोग करण्यासाठी त्याच्या मजकूर फाईलमध्ये खालील कॉपी करतो. पुढे जे घडेल ते तुम्हाला धक्का देईल...

You’ll never get away with this!!!

‘dd’

शब्दानुसार शब्द नॅव्हिगेट करण्यासाठी ज्याप्रकारे थोडे कष्ट घ्यावे लागतात, तेच x/X कमांड्ससाठीही म्हणता येईल. एखादे अक्षर हटवणे हे निश्चितपणे आम्हाला प्रवेश मिळवून देऊ इच्छित आहे, परंतु स्वतःच कमांड हटविण्यात फारशी कार्यक्षम नाही. dd कमांड कार्यान्वित केल्याने आम्हाला फक्त 2 कीस्ट्रोकसह संपूर्ण ओळ हटवता येते (पहिला d डिलीट कमांड चालवतो, दुसरा वर्तमान ओळीवर लागू करतो). मिकी त्याच्या मजकूर फाईलमध्ये खालील कॉपी आणि पेस्ट करतो, नंतर dd कमांडसह प्रयोग करण्याचा प्रयत्न करतो (जेव्हा तुमचा मजकूर गहाळ होईल तेव्हा काळजी करू नका. आम्ही दुसऱ्यांदा त्याची काळजी घेऊ):

All work and no play makes Jack a dull boy.
All work and no play makes Jack a dull boy.
All work and no play makes Jack a dull boy.
All work and no play makes Jack a dull boy.
All work and no play makes Jack a dull boy.
All work and no play makes Jack a dull boy.
All work and no play makes Jack a dull boy.

'dd' कमांड कर्सरच्या स्थानाकडे दुर्लक्ष करून संपूर्ण ओळ हटवेल.

पूर्ववत/पुन्हा करा

मिकी इतका उत्साहित झाला की त्याने त्याचा सर्व मजकूर हटवला. मोठा नाही. आमच्या डिलीट लाइन क्रिया पूर्ववत करूया. मिकी पूर्ववत करू इच्छित असलेल्या प्रत्येक क्रियेसाठी फक्त u (कमांड मोडमध्ये असताना) प्रवेश करतो. redo कमांड CTRL + r सह वापरली जाऊ शकते. चला आमचे बदल पूर्ववत करू जेणेकरून आम्हाला आमचा मजकूर परत मिळेल.

विम कमांड्स चेनिंग

मिकीला त्याच्या विम कौशल्याबद्दल खूप चांगले वाटत आहे. त्या दिवशी दुपारी खेळताना तो त्याचा मित्र टॉमीला दाखवायचा ठरवतो, पण टॉमी प्रभावित झाला नाही. तो मिकीला सांगतो की संकल्पना छान असली तरी, तो जे काही करत आहे ते अ‍ॅटम किंवा सबलाइमसारखे टेक्स्ट एडिटर वापरण्यापेक्षा अधिक कार्यक्षम असल्याचे सिद्ध होत नाही. मिकीला कळते की टॉमी बरोबर होता आणि त्याला वाटते की त्याचा सर्व विम सराव व्यर्थ होता. बिचारा मिकी.

आता सूर्य मावळत आहे आणि टॉमीला घरी जायचे आहे, पण मिकी अजूनही विमचा विचार करत आहे. जेव्हा मिकीला एक वेडी कल्पना असते तेव्हा तो चांगल्यासाठी विमचा त्याग करण्यास तयार असतो. तो Vim सह त्याची मजकूर फाइल उघडतो, त्याच्या फाईलमध्ये एक शब्द शोधतो आणि ही आज्ञा प्रविष्ट करतो:

2W

Mikey चा कर्सर आता 2 WORDS पुढे शब्दाच्या सुरूवातीस पुढे सरकतो. मिकी दुसरी आज्ञा वापरून पाहतो:

5x

आता मिकीने कर्सरच्या खालील 5 स्पेस हटवल्या आहेत. मिकी आता काहीतरी वेडा करण्याचा प्रयत्न करतो:

5dw

आता मिकीने त्याच्या कर्सरला अनुसरून 5 शब्द हटवले आहेत. तो सतत मूर्ख बनतो आणि त्याने एकत्र बांधलेल्या काही विम पद्धतींची नोंद घेतो:

  • [count], w/W : e/E : b/B : h/j/k/l — कमांड [count] वेळा पूर्ण करते
  • d [count] w/W : e/E : b/B : h/j/k/l — कमांड क्रियेनुसार हटवते [count] वेळा
  • d 0/$- कर्सर आणि ओळीच्या सुरुवाती/शेवटमधील सर्व काही हटवते

त्याला खात्री आहे की आणखी बरेच काही सापडले आहे, परंतु त्याला खात्री आहे की त्याच्याकडे जे काही आहे ते त्याला त्याच्या मजकूर फाइल्स संपादित करण्यासाठी Vim ला एक व्यवहार्य पर्याय बनवण्याच्या मार्गावर आणण्यासाठी पुरेसे आहे. यामुळे मिकीला आनंद होतो.

मिकी Vim मधून लॉग आउट करतो आणि खात्री देतो की तो शेवटी Vim चा वापर करण्यासाठी पुरेशा कमांड शिकेल. कोणतेही बदल सेव्ह न करता Vim मधून बाहेर पडण्यासाठी कमांड मोडमध्ये असताना बाहेर पडण्यासाठी :q सह क्विट कमांड एंटर करा (फाइल उघडल्यापासून बदलले असल्यास तुम्हाला :q! एंटर करावे लागेल). तुमचे बदल सेव्ह करण्‍यासाठी, क्विट होण्‍यापूर्वी write कमांड इनपुट करा, जसे की: :wq.

भाग दोनसाठी संपर्कात राहा, जिथे मिकी अनेक वेगवेगळ्या पद्धती लागू करणार आहे ज्यामुळे टॉमीला विमच्या मजकूर संपादन शक्तीचा दुसरा अंदाज येईल. जा मिकी!