1. दो-चरणीय प्रतिस्थापन का उपयोग करके व्यवहार को प्राप्त करना कठिन नहीं है:
:,$s/BEFORE/AFTER/gc|1,''-&&
सबसे पहले, प्रतिस्थापन कमांड को चालू लाइन से शुरू होने वाली प्रत्येक पंक्ति के लिए फ़ाइल के अंत तक चलाया जाता है:
,$s/BEFORE/AFTER/gc
फिर, उस :substitute
कमांड को :&
कमांड (देखें :help :&
) का उपयोग करके समान खोज पैटर्न, प्रतिस्थापन स्ट्रिंग और झंडे के साथ दोहराया जाता है :
1,''-&&
उत्तरार्द्ध, हालांकि, फ़ाइल की पहली पंक्ति से लाइनों की सीमा पर प्रतिस्थापन का कार्य करता है जहां पिछले संदर्भ चिह्न को सेट किया गया है, शून्य से एक। चूंकि पहला :substitute
कमांड वास्तविक प्रतिस्थापन शुरू करने से पहले कर्सर की स्थिति को संग्रहीत करता है, द्वारा संबोधित ''
लाइन वह लाइन है जो कि प्रतिस्थापन कमांड चलने से पहले वर्तमान एक थी। ( ''
पता '
छद्म चिह्न को संदर्भित करता है
; देखें :help :range
और :help ''
विवरण के लिए।)
ध्यान दें कि दूसरे कमांड ( |
कमांड सेपरेटर के बाद -देखें
:help :bar
) को पहले एक पैटर्न या झंडे को बदलने पर किसी भी बदलाव की आवश्यकता नहीं है।
2. कुछ टाइपिंग को बचाने के लिए, कमांड लाइन में उपरोक्त प्रतिस्थापन कमांड के कंकाल को लाने के लिए, एक नॉर्मल-मोड मैपिंग को परिभाषित कर सकता है, जैसे:
:noremap <leader>cs :,$s///gc\|1,''-&&<c-b><right><right><right><right>
<c-b><right><right><right><right>
कमांड लाइन की शुरुआत के लिए कर्सर को स्थानांतरित करने के लिए अनुगामी भाग आवश्यक है ( <c-b>
) और फिर दाईं ओर ( <right>
× 4) चार अक्षर , इस प्रकार इसे पहले दो स्लैश संकेतों के बीच डालकर, उपयोगकर्ता के लिए खोज पैटर्न लिखना शुरू करने के लिए तैयार है। । एक बार वांछित पैटर्न और प्रतिस्थापन तैयार हो जाने के बाद, परिणामी कमांड को दबाकर चलाया जा सकता है
Enter।
( ऊपर दिए गए मैपिंग में कोई //
इसके बजाय विचार कर सकता ///
है, यदि कोई पैटर्न टाइप करना पसंद करता है, तो अलग स्लैश वाले टाइप करें, उसके बाद रिप्लेसमेंट स्ट्रिंग, कर्सर को सही तीर का उपयोग करने के बजाय पहले से मौजूद अलग-अलग स्लैश स्टार्टिंग को स्थानांतरित करने के लिए। प्रतिस्थापन भाग।)
\vpattern
- 'बहुत जादू' पैटर्न: गैर-अल्फ़ान्यूमेरिक वर्णों की व्याख्या विशेष रेगेक्स प्रतीकों (कोई भागने की ज़रूरत नहीं) के रूप में की जाती है