अक्सर मैं खुद को एक प्रतिस्थापन के प्रदर्शन की ज़रूरत में पाता हूं जो एक बड़ी फ़ाइल पर और गैर-तुच्छ खोज और प्रतिस्थापन अभिव्यक्तियों के साथ मेल खाता होगा।
उदाहरण के लिए, मान लें कि मेरे पास कुछ फ़ंक्शन कॉल हैं okFunction(arg1, arg2 arg3)
। हर फ़ंक्शन कॉल के साथ आर्ग अलग-अलग होंगे, ज़ाहिर है। अब कहते हैं कि मैंने एक बेहतर कार्य खोज लिया है जिसकी आवश्यकता नहीं है arg2
। मैं आसानी से पूरी फ़ाइल को समायोजित कर सकता हूं
:%s/\<okFunction(\(\w\+\), \(\w\+\), \(\w\+\))/betterFunction(\1, \3)/gc
हालांकि वैचारिक रूप से सरल, मुझे यकीन नहीं है कि मुझे इस बजाय लंबे पैटर्न में वाक्यविन्यास सही मिला है। c
झंडा वास्तव में यहाँ मदद करता है, लेकिन समस्या यह है कि जब पुष्टि के लिए पूछ रहे हैं, vim नहीं दिखाएगा क्या मैच से बदल दिया जाएगा है। मेरा मतलब है, यह प्रतिस्थापन अभिव्यक्ति दिखाएगा, लेकिन मूल्यांकन किए गए परिणाम नहीं। अगर मैं प्रतिस्थापन के साथ पुष्टि करता हूं y
, तो विम तुरंत अगले मैच में कूद जाएगा और मुझे यह देखने में कोई दिक्कत नहीं होगी कि मैंने कोई गलती की है।
मैंने vim-over प्लगइन पाया है जो आंशिक रूप से समस्या को हल करता है, लेकिन केवल तभी जब सभी कमांड स्क्रीन पर दिखाई दे रहे हों जब आप कमांड टाइप कर रहे हों। एक बार जब आप एंट्री मारते हैं, तो व्यवहार वही होता है जो मैंने ऊपर वर्णित किया था और मुझे इसका पूर्वावलोकन नहीं मिला।
तो, क्या प्रतिस्थापन विकल्प पर पुष्टि के लिए प्रतिस्थापन अभिव्यक्ति का मूल्यांकन करने का कोई तरीका है?
%
, यह जांचें कि परिणाम वही है जो मैं उम्मीद कर रहा था और फिर प्रतिस्थापन का उपयोग करें %
(यह केवल कुछ कीस्ट्रोक्स है:) :<up><c-b>%
। स्पष्ट रूप से एक पूर्वावलोकन विकल्प इससे कहीं अधिक कुशल होगा। हालांकि कोई पैच उपलब्ध है शायद एक ही विकल्प के इस प्रकार लेकिन बहुत काम की तरह है कि लगता है के साथ एक vimscript समारोह में प्रतिस्थापन लपेट सकता है ...