यह पोस्ट सथियामूर्ति द्वारा लिखी गई है।
यह लेख चल रहे Vi / Vim टिप्स और ट्रिक्स सीरीज़ का हिस्सा है। एक Linux सिसएडमिन या प्रोग्रामर के रूप में, आप bash शेल स्क्रिप्ट कोडिंग करते समय निम्नलिखित दोहराए जाने वाले कार्य कर सकते हैं:
- फ़ाइल हेडर जोड़ना
- फ़ंक्शन/फ्रेम टिप्पणी जोड़ना
- डिफ़ॉल्ट कोड स्निपेट शामिल करना
- सिंटैक्स जांच करना
- किसी फ़ंक्शन के बारे में दस्तावेज़ीकरण पढ़ना
- कोड ब्लॉक को टिप्पणी में बदलना, और इसके विपरीत
bash-support Vim प्लगइन उपरोक्त सभी कार्यों को करने का सबसे आसान तरीका प्रदान करता है, जिससे बहुत समय और कीस्ट्रोक्स की बचत होती है।
प्लगइन फ्रिट्ज मेहनर द्वारा लिखा गया था, जो प्लगइन के उद्देश्य को इस प्रकार समझाते हैं: "मेनू और हॉटकीज़ का उपयोग करके BASH-स्क्रिप्ट लिखें और चलाएं।"
यह लेख बताता है कि प्लगइन को 3 आसान चरणों में कैसे इंस्टॉल करें और प्लगइन की 8 शक्तिशाली विशेषताएं।
bash-support प्लगइन इंस्टॉल करने के 3 चरण
चरण 1: bash-support प्लगइन डाउनलोड करें
vim.org वेबसाइट से प्लगइन डाउनलोड करें।
$ cd /usr/src $ wget -O bash-support.zip https://www.vim.org/scripts/download_script.php?src_id=9890
चरण 2: bash-support Vim प्लगइन इंस्टॉल करें
$ mkdir ~/.vim # यदि निर्देशिका पहले से मौजूद नहीं है $ cd ~/.vim $ unzip /usr/src/bash-support.zip
चरण 3: ~/.vimrc में प्लगइन सक्षम करें
Vim एडिटर के लिए प्लगइन को सक्षम करने के लिए ~/.vimrc में निम्नलिखित लाइन जोड़ें।
$ vim ~/.vimrc filetype plugin on
Bash Vim प्लगइन की 8 शक्तिशाली विशेषताएं
विशेषता 1: *.sh फ़ाइल में स्वचालित हेडर जोड़ें
जब आप .sh एक्सटेंशन वाली फ़ाइल खोलते हैं, तो यह नीचे दिखाए अनुसार हेडर के साथ फ़ाइल खोलता है। यह कर्सर को इन्सर्ट मोड में विवरण फ़ील्ड में भी रखता है।
#!/bin/bash #============================================================ # # FILE: myscript.sh # # USAGE: ./myscript.sh # # DESCRIPTION: # # OPTIONS: --- # REQUIREMENTS: --- # BUGS: --- # NOTES: --- # AUTHOR: (), # COMPANY: # VERSION: 1.0 # CREATED: 02/14/09 15:42:08 IST # REVISION: --- #============================================================
डिफ़ॉल्ट AUTHOR और COMPANY मान बदलने के लिए, ~/.vimrc में निम्नलिखित लाइनें जोड़ें:
let g:BASH_AuthorName = 'SathiyaMoorthy' let g:BASH_Email = 'subscribe@thegeekstuff.com' let g:BASH_Company = 'Open Source Corporation'
अब, जब आप एक नई bash स्क्रिप्ट फ़ाइल बनाते हैं, तो यह AUTHOR और COMPANY के लिए संशोधित मान दिखाएगा जैसा कि नीचे दिखाया गया है।
#!/bin/bash #============================================================ # # FILE: myscript.sh # # USAGE: ./myscript.sh # # DESCRIPTION: # # OPTIONS: --- # REQUIREMENTS: --- # BUGS: --- # NOTES: --- # AUTHOR: SathiyaMoorthy (), subscribe@thegeekstuff.com # COMPANY: Open Source Corporation # VERSION: 1.0 # CREATED: 02/14/09 15:39:58 IST # REVISION: --- #============================================================
नोट: हेडर में कस्टम फ़ील्ड जोड़ने के लिए, ~/.vim/perl-support/templates/bash-file-header फ़ाइल को संशोधित करें और अपना कस्टम फ़ील्ड जोड़ें।
विशेषता 2: \sfu का उपयोग करके Bash फ़ंक्शन जोड़ना
सबरूटीन लिखने के लिए, नॉर्मल मोड में \sfu टाइप करें, जो फ़ंक्शन नाम के लिए संकेत देगा (जैसा कि नीचे Fig 1 में दिखाया गया है) और डिफ़ॉल्ट फ़ंक्शन सामग्री के साथ सबरूटीन डाल देगा (जैसा कि नीचे Fig 2 में दिखाया गया है)।

Fig 1: शेल स्क्रिप्ट के अंदर bash फ़ंक्शन जोड़ने के लिए \sfu टाइप करें

Fig 2: शेल स्क्रिप्ट के अंदर स्वचालित रूप से जोड़ा गया Bash फ़ंक्शन
विशेषता 3: \cfu का उपयोग करके फ़ंक्शन हेडर डालें
फ़ंक्शन हेडर डालने के लिए, नॉर्मल मोड में \cfu टाइप करें, जो Fig 3 में दिखाए अनुसार टिप्पणियां दिखाता है।

Fig 3: शेल स्क्रिप्ट के अंदर फ़ंक्शन हेडर डालने के लिए \cfu टाइप करें
विशेषता 4: \cfr का उपयोग करके फ्रेम टिप्पणी जोड़ें
फ्रेम टिप्पणी जोड़ने के लिए, नॉर्मल मोड में \cfr टाइप करें, जो Figure 4 में दिखाए अनुसार फ़ॉर्मेट की गई टिप्पणी देगा।

Fig 4: शेल स्क्रिप्ट के अंदर फ्रेम टिप्पणी डालने के लिए \cfr टाइप करें
विशेषता 5: शेल स्क्रिप्ट के अंदर Bash स्टेटमेंट्स डालें
स्टेटमेंट्स डालने के लिए शॉर्टकट कुंजियाँ हैं:
- \sc case in … esac
- \sl elif then
- \sf for in do done
- \sfo for ((…)) do done
- \si if then fi
- \sie if then else fi
- \ss select in do done
- \st until do done
- \sw while do done
- \sfu फ़ंक्शन
- \se echo e "\n"
- \sp printf "\n"
उदाहरण: केस स्टेटमेंट को शेल स्क्रिप्ट के अंदर स्वचालित रूप से डालें
\sc केस स्टेटमेंट्स डाल देगा और कर्सर को इन्सर्ट मोड में केस स्टेटमेंट के बगल में रख देगा जैसा कि Figure 5 में दिखाया गया है। इसी तरह आप टेबल 1 में उल्लिखित सभी शॉर्टकट कीस्ट्रोक्स का उपयोग करके उपयुक्त स्टेटमेंट प्राप्त कर सकते हैं।

Fig 5: Bash शेल स्क्रिप्ट के अंदर केस स्टेटमेंट डालने के लिए \sc टाइप करें
विशेषता 6: \nr का उपयोग करके पूर्वनिर्धारित कोड-स्निपेट को Bash स्क्रिप्ट में डालें
\nr और \nw का उपयोग करके कोड स्निपेट्स को पढ़ा / लिखा जा सकता है। प्लगइन कुछ पूर्व-परिभाषित कोड स्निपेट्स के साथ आता है जिन्हें आप अपने कोड में डाल सकते हैं। प्लगइन के साथ आने वाले डिफ़ॉल्ट कोड स्निपेट्स निम्नलिखित हैं।
$ ls -1 ~/.vim/bash-support/codesnippets/ assert basename+pathname basename-function check-number-of-command-line-arguments create-tempfile create-tempfile-with-trap free-software-comment read-and-split-into-array timestamp usage-and-command-line-arguments.noindent use-file-descriptor-read use-file-descriptor-write well-behaved-script
check-number-of-command-line-arguments कोड स्निपेट शामिल करने के लिए, \nr दबाएं और आपको फ़ाइल नाम के लिए संकेत दिया जाएगा। फ़ाइल नाम को check-number-of-command-line-arguments के रूप में दें और निम्नलिखित कोड स्वचालित रूप से शेल-स्क्रिप्ट में डाल दिया जाएगा।
#----------------------------------------------------------------------- # कमांड लाइन आर्ग्यूमेंट्स की संख्या जांचें #----------------------------------------------------------------------- if [ $# -lt 1 ] then echo -e "\n\tUsage: ${0##/*/} File\n" exit 1 fi
नोट: आप अपने स्वयं के कोड स्निपेट्स को परिभाषित कर सकते हैं और इसे ~/.vim/bash-support/codesnippets/ के अंतर्गत रख सकते हैं। आप मौजूदा कोड से अपने स्वयं के कोड स्निपेट्स भी बना सकते हैं - कोड के उस हिस्से का चयन करें जिसे कोड स्निपेट बनाने की आवश्यकता है, \nw दबाएं, और इसे एक फ़ाइल नाम दें। अगली बार से, \nr टाइप करें और अपना कस्टम कोड स्निपेट प्राप्त करने के लिए फ़ाइल नाम दें।
विशेषता 7: Bash बिल्ट-इन कमांड्स पर त्वरित सहायता प्राप्त करें
जब आपको bash बिल्ट-इन्स के लिए सहायता पृष्ठ पढ़ने की आवश्यकता होती है, तो कर्सर शब्द पर होने पर \hh का उपयोग करें।
निम्नलिखित उदाहरण (Fig 6) में, read bash बिल्ट-इन कमांड को चुना गया है और \hh टाइप किया गया है, जिसने read कमांड पर त्वरित-सहायता प्रदर्शित की। सभी bash बिल्ट-इन कमांड्स पर त्वरित-सहायता प्राप्त करने के लिए उसी विधि का उपयोग करें।

Fig 6: चयनित bash बिल्ट-इन कमांड के बारे में सहायता प्राप्त करने के लिए \hh टाइप करें
विशेषता 8: विशेष टिप्पणी
निम्नलिखित कमांड संबंधित कीवर्ड टिप्पणियां जोड़ देंगे। उदाहरण के लिए, शेल-स्क्रिप्ट के अंदर BUG टिप्पणी लाइन जोड़ने के लिए \ckb टाइप करें।
- \ckb कीवर्ड BUG
- \ckt कीवर्ड TODO
- \ckr कीवर्ड Tricky
- \ckw कीवर्ड WARNING
\ckt टाइप करके "# :TODO: mm/dd/yy:: " कीवर्ड के साथ एक टिप्पणी लाइन जोड़ें। यह मूल रूप से एक टिप्पणी लाइन है जो TODO के रूप में कार्य करती है, जहां आप उन आइटम्स को टाइप कर सकते हैं जिन्हें आप बाद में पूरा करना चाहते हैं।

Fig 7: Bash शेल स्क्रिप्ट के अंदर TODO जोड़ने के लिए \ckt टाइप करें
bash-support प्लगइन में बहुत सारी शक्तिशाली विशेषताएं हैं। अधिक जानकारी के लिए दस्तावेज़ीकरण पढ़ें। दस्तावेज़ीकरण आपके सिस्टम पर निम्नलिखित स्थान पर स्थित है।
- README : ~/.vim/README.bashsupport
- PDF : ~/.vim/bash-support/doc/bash-hot-keys.pdf
- ऑनलाइन bash-support vim प्लगइन दस्तावेज़ीकरण
- यह प्लगइन एक सहायता फ़ाइल (bashsupport.txt) के साथ आता है जिसे :h bashsupport द्वारा देखा जा सकता है
- [ :helptags ~/.vim/doc द्वारा सहायता टैग जनरेट करें, और फिर :h bashsupport जारी करें ]
- इस प्लगइन के अतिरिक्त स्क्रीनशॉट।
अनुशंसित पठन
Vim 101 Hacks, रमेश नटराजन द्वारा. मैं एक कमांड-लाइन जंकी हूं। इसलिए, स्वाभाविक रूप से मैं Vi और Vim एडिटर्स का बहुत बड़ा प्रशंसक हूं। कई साल पहले, जब मैंने Linux पर बहुत सारा C कोड लिखा था, मैं उपलब्ध सभी Vim एडिटर टिप्स और ट्रिक्स पढ़ता था। अपने Vim एडिटर अनुभव के आधार पर, मैंने Vim 101 Hacks ईबुक लिखी है जिसमें विभिन्न उन्नत Vim सुविधाओं पर 101 व्यावहारिक उदाहरण हैं जो आपको Vim एडिटर में तेज़ और उत्पादक बनाएंगे। यदि आप कई वर्षों से Vi और Vim एडिटर्स का उपयोग कर रहे हैं और इस पुस्तक को नहीं पढ़ा है, तो कृपया अपना उपकार करें और इस पुस्तक को पढ़ें। आप Vim एडिटर की क्षमताओं से चकित होंगे।