विम खोजें और बदलें

Vim Search Replace



विम एक उन्नत और लोकप्रिय टेक्स्ट एडिटर है जो अधिकांश लिनक्स वितरणों में प्रीइंस्टॉल्ड आता है। यह एक कमांड-लाइन आधारित टेक्स्ट एडिटर है जो ज्यादातर गैर-जीयूआई आधारित ऑपरेटिंग सिस्टम में उपयोग किया जाता है। यह अत्यधिक विन्यास योग्य है और बहुत सारी विशेषताओं के साथ आता है। विम के बारे में एक महत्वपूर्ण बात यह है कि यह दोहराव के लिए अत्यधिक अनुकूलित है।

इस लेख में, हम इसकी सबसे उपयोगी विशेषताओं में से एक की व्याख्या करेंगे जो कि खोज और प्रतिस्थापन है। मुट्ठी भर कॉन्फ़िगरेशन के साथ, आप अपनी पसंद की कोई भी चीज़ तेज गति से और बारीक ग्रैन्युलैरिटी के साथ खोज सकते हैं।







विधि # 1 एक समय में एक घटना को खोजें और बदलें (स्लैश और डॉट कमांड का उपयोग करके)

विम में किसी शब्द को खोजने और बदलने का सबसे सरल तरीका स्लैश और डॉट कमांड का उपयोग करना है। किसी शब्द को खोजने के लिए स्लैश (/) का उपयोग किया जा सकता है जबकि उस शब्द को बदलने के लिए बिंदु (.) का उपयोग किया जा सकता है।



विम संपादक में किसी भी शब्द को खोजने और बदलने के लिए नीचे दिए गए सरल चरणों का पालन करें:



  • फ़ाइल को विम में खोलें
  • खोज शब्द जैसे / search_term के साथ स्लैश (/) कुंजी दबाएं और एंटर दबाएं। यह चयनित शब्द को हाइलाइट करेगा।
  • फिर कीस्ट्रोक दबाएं सीजीएन हाइलाइट किए गए शब्द को बदलने के लिए और replace_term . दर्ज करें
  • सामान्य मोड पर वापस जाएं। अगला, खोज शब्द की अगली आवृत्ति पर जाने के लिए n दबाएं।
  • फिर यदि आप अगली घटना को उसी replace_term से बदलना चाहते हैं तो डॉट (।) दबाएं अन्यथा अगली घटना पर जाने के लिए फिर से n कुंजी दबाएं।

यह बुनियादी खोज के लिए सबसे तेज़ और सर्वोत्तम तरीका है और कार्यों को प्रतिस्थापित करता है क्योंकि इसमें केवल कुछ कीस्ट्रोक शामिल होते हैं और आपके वर्तमान कार्य में कम व्यवधान होता है। हालाँकि, एक शब्द की खोज के लिए जो बहुत बार आता है, यह एक दोहराव और समय लेने वाला कार्य बन जाएगा।





विम के साथ, इस दोहराव वाले कार्य से बचने का एक और बेहतर तरीका है जो विकल्प कमांड का उपयोग कर रहा है।

विधि #2 स्थानापन्न कमांड का उपयोग करके खोजें और बदलें

स्थानापन्न कमांड का उपयोग बुनियादी से उन्नत खोज करने और कार्यों को एकल कमांड से बदलने के लिए किया जा सकता है। इस कमांड का सिंटैक्स है:



$:एस/<जाँच अवधि> /<रिप्लेस_टर्म> /विकल्प

ध्यान दें कि आपको इस कमांड को सामान्य मोड में दर्ज करना होगा।

कहा पे

  • एस: स्थानापन्न के लिए खड़ा है
  • search_term: वह शब्द जिसे आप खोजना और बदलना चाहते हैं
  • replace_term: वह शब्द जिसके साथ आप इसे बदलना चाहते हैं
  • विकल्प: c (पुष्टि के लिए), g (सभी घटनाओं को एक पंक्ति में बदलें), i (मामले को अनदेखा करने के लिए)

खोजें और बदलें

मूल खोज करने और स्थानापन्न कमांड का उपयोग करके प्रतिस्थापित करने के लिए, निम्न सिंटैक्स का उपयोग करें:

:%एस/<जाँच अवधि> /<रिप्लेस_टर्म> /जी

यह आदेश search_term के सभी उदाहरणों को replace_term से बदल देगा।

उदाहरण के लिए, यह हमारा नमूना पाठ है:

उबंटू सबसे अधिक इस्तेमाल किए जाने वाले लिनक्स ओएस में से एक है। उबंटू में हजारों उपयोगी कार्यक्रम शामिल हैं। उबंटू कमांड-लाइन के साथ, आप लगभग किसी भी प्रकार के कार्य को पूरा कर सकते हैं।

निम्नलिखित पाठ में उबंटू की प्रत्येक घटना को डेबियन से बदलने के लिए, निम्नलिखित कमांड का उपयोग किया जाएगा:

:%एस/उबंटू/डेबियन/जी

एक पंक्ति में खोजें और बदलें

संपूर्ण फ़ाइल के बजाय केवल एक ही पंक्ति में किसी शब्द की पुनरावृत्ति को खोजने और बदलने के लिए, निम्न सिंटैक्स का उपयोग करें:

:एस/<जाँच अवधि> /रिप्लेस_टर्म/जी

उदाहरण के लिए, उपरोक्त नमूना पाठ में उबंटू की घटना को डेबियन से बदलने के लिए, % प्रतीक के बिना निम्नलिखित कमांड का उपयोग किया जाएगा:

:एस/उबंटू/डेबियन/जी

पुष्टि के साथ खोजें और बदलें

यदि आप खोज शब्द को बदलने से पहले पुष्टि के लिए कहा जाना चाहते हैं, तो खोज कमांड के अंत में c का उपयोग निम्नानुसार करें:

:एस/<जाँच अवधि> /<रिप्लेस_टर्म> /जीसी

उपरोक्त आदेश प्रत्येक प्रतिस्थापन से पहले पुष्टि के लिए पूछेगा (हां के लिए y दर्ज करें जबकि n के लिए नहीं)।

केस असंवेदनशील खोजें और बदलें

जब आप विम में खोज और प्रतिस्थापन करते हैं, तो डिफ़ॉल्ट रूप से यह केस संवेदनशील होता है। आप कमांड के अंत में i जोड़कर केस असंवेदनशील खोज कर सकते हैं:

:एस/<जाँच अवधि> /<रिप्लेस_टर्म> /देना

उदाहरण के लिए, उबंटू शब्द की खोज करने के लिए इसके मामले की परवाह किए बिना (UBUNTU, Ubuntu, ubuntu, uBuntu), निम्नलिखित कमांड का उपयोग किया जाएगा:

:एस/उबंटू/डेबियन/देना

पूरे शब्द को खोजें और बदलें

डिफ़ॉल्ट रूप से स्थानापन्न कमांड किसी भी मैच के लिए खोज करता है चाहे वह आंशिक हो या पूर्ण। सटीक search_term से मिलान करने के लिए और फिर इसे replace_term से बदलने के लिए, _term को .

उदाहरण के लिए, कुछ दस्तावेज़ों में, आप मेरे द्वारा दिए गए सटीक शब्द को खोजना और बदलना चाहते हैं। उस स्थिति में, निम्न आदेश का उपयोग किया जाएगा:

:एस/<आप> /मैं/

यह आपको शब्द ढूंढेगा और इसे मेरे साथ बदल देगा। हालाँकि, यह आपके जैसे शब्दों को प्रतिस्थापित नहीं करेगा।

विशेष पंक्तियों के बीच शब्दों को खोजें और बदलें

केवल एक पंक्ति या पूरी फ़ाइल के बजाय विशेष पंक्तियों के बीच एक शब्द खोजने के लिए, निम्नलिखित सिंटैक्स का उपयोग किया जा सकता है:

:<शुरू लाइन>,<अंत लाइन>एस/<जाँच अवधि> /<रिप्लेस_टर्म> /जी

उदाहरण के लिए, किसी फ़ाइल में 3 से 8 तक की लाइनों से उबंटू की घटना को डेबियन के साथ खोजने और बदलने के लिए, कमांड होगी:

:1,10s/उबंटू/डेबियन/जी

वर्तमान पंक्ति से किसी शब्द की आवृत्ति को अगली x संख्या की पंक्तियों में खोजने और बदलने के लिए, निम्नलिखित सिंटैक्स का उपयोग किया जाएगा:

:एस/जाँच अवधि/रिप्लेस_टर्म/जी एक्स

इसी तरह, किसी शब्द की वर्तमान पंक्ति से अंतिम पंक्ति तक खोज और बदलने के लिए: निम्नलिखित सिंटैक्स का उपयोग किया जाएगा:

:.,$s/जाँच अवधि/रिप्लेस_टर्म/जी

निष्कर्ष

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