मैंने लगभग 25 वर्षों से Linux का उपयोग किया है और उससे कुछ साल पहले Unix का। उस दौरान, मैंने कुछ टूल्स के लिए प्राथमिकताएं विकसित की हैं जिनका मैं दैनिक उपयोग करता हूं। सबसे महत्वपूर्ण टूल्स में से एक जिसका मैं उपयोग करता हूं वह है Vim एडिटर।
मैंने 90 के दशक की शुरुआत में Solaris सीखते समय Vi का उपयोग करना शुरू किया क्योंकि मुझे बताया गया था कि यह हमेशा किसी भी सिस्टम पर उपलब्ध होगा, जो मेरे अनुभव में सच है। मैंने अन्य एडिटर्स को आजमाया है, और वे सभी काम करते हैं। हालांकि, मुझे लगता है कि Vim मेरे लिए सबसे अच्छा काम करता है, और मैं इसका इतना उपयोग करता हूं कि मेरी Vim मसल मेमोरी मुझे अन्य एडिटर्स के साथ भी इसके कमांड कीस्ट्रोक्स का उपयोग करने का प्रयास करने का कारण बनती है।
साथ ही, मुझे Vim वास्तव में पसंद है।
कई कॉन्फ़िगरेशन फ़ाइलें Vim के बजाय Vi का उपयोग करती हैं, और आप vi कमांड चला सकते हैं। हालांकि, vi कमांड vim का एक लिंक है।
कई Linux टूल्स एडिटर्स का उपयोग करते हैं जो Nano, Emacs, या Vim का अनुकरण करते हैं या बस उन्हें कॉल करते हैं। कुछ अन्य टूल्स उपयोगकर्ताओं को – जैसे कि स्पष्ट प्राथमिकताओं वाले – अपने पसंदीदा एडिटर से लिंक करने की अनुमति देते हैं। दो उदाहरण जिन्होंने मुझे सबसे अधिक प्रभावित किया वे थे Bash कमांड-लाइन एडिटिंग, जो डिफ़ॉल्ट रूप से Emacs है, और Alpine टेक्स्ट-मोड ईमेल क्लाइंट, जो डिफ़ॉल्ट रूप से Pico एडिटर है। वास्तव में, Pico एडिटर को Pine ईमेल क्लाइंट में उपयोग के लिए स्पष्ट रूप से लिखा गया था, जो Alpine का पूर्ववर्ती है।
सभी प्रोग्राम जो एक्सटर्नल एडिटर्स का उपयोग करते हैं, कॉन्फ़िगरेबल नहीं हैं। कुछ केवल डेवलपर द्वारा निर्दिष्ट एडिटर का उपयोग करते हैं। उन एप्लिकेशन्स के लिए जो कॉन्फ़िगरेबल हैं, आपके पसंदीदा एडिटर को चुनने के लिए अलग-अलग तरीके हैं।
Linux कमांड-लाइन एडिटिंग
वास्तव में टेक्स्ट फ़ाइलों को एडिट करने के अलावा, दूसरा टूल जिसका मैं उपयोग करता हूं जिसमें सबसे अधिक एडिटिंग की आवश्यकता होती है वह है Bash शेल। डिफ़ॉल्ट Bash एडिटर Emacs है। हालांकि मैंने Emacs का उपयोग किया है, मैं निश्चित रूप से Vim पसंद करता हूं। इसलिए कई साल पहले, मैंने Bash कमांड-लाइन एडिटिंग के लिए डिफ़ॉल्ट एडिटिंग स्टाइल को Emacs से Vim में बदल दिया, जो मेरे लिए कहीं अधिक आरामदायक है।
Bash को कॉन्फ़िगर करने के कुछ तरीके हैं। आप एक लोकल कॉन्फ़िगरेशन फ़ाइल का उपयोग कर सकते हैं, जैसे /home/yourhomedirectory/.bashrc, जो केवल आपके उपयोगकर्ता खाते के लिए डिफ़ॉल्ट बदलता है न कि उसी सिस्टम पर अन्य उपयोगकर्ताओं के लिए। मैं इस प्रकार के परिवर्तनों को ग्लोबल बनाना पसंद करता हूं, जिसका मूल रूप से मतलब है मेरा व्यक्तिगत खाता और रूट। इस दूसरे मामले में, आप अपनी खुद की कॉन्फ़िगरेशन फ़ाइल बना सकते हैं और इसे /etc/profile.d डायरेक्ट्री में रख सकते हैं।
मैंने /etc/profile.d में myBashConfig.sh नामक एक फ़ाइल जोड़ी। /etc/profile.d डायरेक्ट्री में सभी इंस्टॉल्ड शेल्स के लिए फ़ाइलें हैं। टर्मिनल सेशन के लॉन्च के दौरान, प्रत्येक शेल केवल फ़ाइल नाम एक्सटेंशन के आधार पर उसके लिए इच्छित फ़ाइलें पढ़ता है। उदाहरण के लिए, Bash शेल केवल .sh एक्सटेंशन वाली फ़ाइलें पढ़ता है।
<SNIP>
alias vim='vim -c "colorscheme desert" '
# Bash एडिटिंग मोड के लिए vi सेट करें
set -o vi
# इस चेक करने वाले सभी ऐप्स के लिए डिफ़ॉल्ट एडिटर के रूप में vi सेट करें
EDITOR=vi
<SNIP>
इस ग्लोबल Bash कॉन्फ़िगरेशन फ़ाइल सेगमेंट में लाइन set -o vi Vi को डिफ़ॉल्ट एडिटर के रूप में सेट करती है। इस set कमांड पर -o विकल्प vi को एडिटर के रूप में परिभाषित करता है। इसके प्रभावी होने के लिए आपको किसी भी चल रहे Bash सेशन को बंद करके नए खोलने होंगे।
इस बिंदु पर, अब आप अपने सभी परिचित Vim एडिटिंग कमांड्स का उपयोग कर सकते हैं, जिसमें कर्सर मूवमेंट भी शामिल है। Vim एडिटिंग मोड में प्रवेश करने के लिए बस Escape कुंजी दबाएं। मुझे विशेष रूप से कर्सर को कई शब्द पीछे ले जाने के लिए b का कई बार उपयोग करने की क्षमता पसंद है।
अन्य प्रोग्राम्स के लिए डिफ़ॉल्ट के रूप में Vim सेट करें
कुछ Linux कमांड-लाइन टूल्स और प्रोग्राम्स यह निर्धारित करने के लिए $EDITOR एनवायरनमेंट वेरिएबल की जांच करते हैं कि किस एडिटर का उपयोग करना है। आप निम्न कमांड का उपयोग करके इस वेरिएबल का वर्तमान मान स्वयं जांच सकते हैं। मैंने इसे अपनी नई इंस्टॉल की गई वर्चुअल मशीनों में से एक पर यह सत्यापित करने के लिए किया कि डिफ़ॉल्ट वास्तव में क्या है।
# echo $EDITOR
/usr/bin/nano
#
डिफ़ॉल्ट रूप से, Fedora प्रोग्राम्स जो $EDITOR एनवायरनमेंट वेरिएबल की जांच करते हैं, Nano एडिटर का उपयोग करेंगे। ऊपर दिखाए गए स्निपेट में myBashConfig.sh में लाइन EDITOR=vi जोड़ने से डिफ़ॉल्ट Vi (Vim) एडिटर में बदल जाता है। सभी कमांड-लाइन प्रोग्राम्स जो एक्सटर्नल एडिटर का उपयोग करते हैं, इस एनवायरनमेंट वेरिएबल की जांच नहीं करते हैं।
Alpine में ईमेल एडिट करें
कुछ हफ्ते पहले, मैंने फैसला किया कि Pico मेरे लिए ईमेल एडिटर के रूप में अच्छा काम नहीं कर रहा था। मैं इसे काम करवा सकता था और Thunderbird से Alpine पर स्विच करने के बाद कुछ समय के लिए किया। मैंने पाया कि जब मैंने Vim की सीक्वेंस का उपयोग करने की कोशिश की तो Pico मेरे रास्ते में आ रहा था, जिससे मेरी उत्पादकता प्रभावित हो रही थी।
मैंने Alpine हेल्प में पढ़ा कि डिफ़ॉल्ट एडिटर को बदलना संभव है। मैंने इसे Vim में बदलने का फैसला किया। यह वास्तव में करना बहुत आसान है।
Alpine मुख्य मेनू पर, सेटअप में प्रवेश करने के लिए S कुंजी दबाएं और फिर कॉन्फ़िगरेशन के लिए C। Composer Preferences सेक्शन में, Enable Alternate Editor Command और Enable Alternate Editor Implicitly आइटम्स को X के साथ चुनें। Advanced User Preferences सेक्शन में कई पेज नीचे, Editor लाइन ढूंढें। यदि यह पहले से बदला नहीं गया है तो यह इस तरह दिखना चाहिए।
Editor = <No Value Set>कर्सर बार के साथ इस Editor लाइन को हाइलाइट करें, और लाइन संपादित करने के लिए Enter दबाएं। <No Value Set> को vim में बदलें, Enter दबाएं, और फिर परिवर्तनों को सहेजने के लिए E कुंजी दबाकर बाहर निकलें और Y दबाएं।
Vim का उपयोग करके ईमेल संदेश एडिट करने के लिए, बस ईमेल बॉडी में प्रवेश करें, और Vim ऑटोमैटिकली शुरू हो जाता है, ठीक वैसे ही जैसे Pico करता है। मेरी सभी पसंदीदा एडिटिंग क्षमताएं वहां हैं क्योंकि यह वास्तव में Vim का उपयोग कर रहा है। यहां तक कि Vim से बाहर निकलने के लिए Esc :wq सीक्वेंस भी वही है।
अंतिम विचार
मैं अन्य एडिटर्स की तुलना में Vim को बहुत पसंद करता हूं, और मेरे सिस्टम में ये परिवर्तन इसे उन प्रोग्राम्स में डिफ़ॉल्ट के रूप में उपलब्ध कराते हैं जो डिफ़ॉल्ट रूप से एक अलग एडिटर का उपयोग करते हैं। कुछ प्रोग्राम्स $EDITOR एनवायरनमेंट वेरिएबल का उपयोग करते हैं, इसलिए आपको केवल एक बार वह परिवर्तन करना होगा। Alpine जैसे अन्य प्रोग्राम्स में उपयोगकर्ता कॉन्फ़िगरेशन विकल्प होते हैं जिन्हें आपको प्रत्येक प्रोग्राम के लिए व्यक्तिगत रूप से सेट करना होगा।
अपने पसंदीदा एक्सटर्नल एडिटर को चुनने की यह क्षमता यूनिक्स फिलॉसफी के सिद्धांत, "प्रत्येक प्रोग्राम को एक काम करना चाहिए और उसे अच्छी तरह से करना चाहिए" के अनुरूप है। जब कई पूरी तरह से अच्छे एडिटर्स मौजूद हैं तो दूसरा एडिटर क्यों लिखें? और यह लिनक्स फिलॉसफी के सिद्धांत, "अपने पसंदीदा एडिटर का उपयोग करें" को भी पूरा करता है।
बेशक, आप अपने डिफ़ॉल्ट टेक्स्ट-मोड एडिटर को Nano, Pico, EMACS, या किसी अन्य में बदल सकते हैं जिसे आप पसंद करते हैं।