मेरे पास <Foobar Name='Hello There'/>
जैसा कुछ है और एकल उद्धरण चिह्नों को दोहरे उद्धरण चिह्नों में बदलने की आवश्यकता है। मैंने :s/\'.*\'/\"\0\"
की कोशिश की लेकिन यह <Foobar Name="'Hello There'"/>
का उत्पादन समाप्त हो गया। \0
को \1
के साथ प्रतिस्थापित करने से केवल डबल कोट्स के अंदर एक खाली स्ट्रिंग उत्पन्न हुई - क्या कुछ विशेष वाक्यविन्यास है, मुझे याद आ रही है कि मुझे \1
पर उद्धरण चिह्नों के अंदर केवल पाया गया स्ट्रिंग ("हैलो वहां") बनाने की आवश्यकता है?विम में तारों के चारों ओर उद्धरण चिह्नों को प्रतिस्थापित करना?
उत्तर
आप समूहों का उपयोग करने की जरूरत है:
:s/\'\(.*\)\'/\"\1\"
इस तरह तर्क 1 (यानी, \ 1) जो कुछ भी \ द्वारा सीमांकित किया जाता है के अनुरूप (और \)।
आपको उस अभिव्यक्ति के हिस्से के चारों ओर गोल ब्रैकेट डालने की आवश्यकता है, जिसे आप कैप्चर करना चाहते हैं।
s/\'\(.*\)\'/"\1"/
लेकिन, आपको अनजाने मिलान के साथ समस्या हो सकती है। क्या आप अपनी फ़ाइल में डबल कोट्स के साथ किसी भी एकल उद्धरण को प्रतिस्थापित करने में सक्षम हो सकते हैं?
जब तक कि मुझे कुछ याद नहीं आ रहा है, s/\'/"/g
काम नहीं करेगा?
आपको सही विचार मिल गया है - आप अपने प्रतिस्थापन खंड के रूप में "\1"
रखना चाहते हैं, लेकिन आपको पहले समूह को कैप्चर करने में "हैलो वहां" भाग रखना होगा (0 पूरा मिलान है)। प्रयास करें:
:%/'\(.*\)'/"\1"
%s/'\([^']*\)'/"\1"/g
आप का उपयोग करने के [^']*
बजाय .*
की अन्यथा
'apples' are 'red'
"apples' are 'red"
या '। *' 'के बजाय'। \ {-} 'का उपयोग करें। देखें ': सहायता/\ {- '। –
परिवर्तित हो जाएगा वहाँ भी है surround.vim, आप के लिए देख रहे हैं चाहते हैं यह काफी बार करो। आस-पास के उद्धरण बदलने के लिए आप cs'"
का उपयोग करेंगे।
surround.vim लिंक के लिए धन्यवाद - मैं लंबे समय से इस के लिए काम कर रहा था। – ThomasH
क्या यह कुछ नेता आदेश के लिए मैप करने का कोई तरीका है? मैं इसे करने के लिए नहीं कर सकता: \ –
आपको इसे एक नेता कमांड में मैप करने की आवश्यकता नहीं है, क्योंकि यह दो तर्कों के साथ एक कस्टम 'सीएस 'गति का उपयोग कर रहा है -'' 'लक्ष्य के रूप में, और' '' प्रतिस्थापन – kejadlen
बस एक FYI करें - एक साथ सभी दोहरे उद्धरण चिह्नों को बदलने के लिए, यह सही regexp है - ऊपर
:%s/"\([^"]*\)"/'\1'/g
rayd09 की मिसाल मानकर आप एक पूरे फ़ाइल पर ऐसा करना चाहते हैं के आधार पर ...
एन मोड:
ggvG$ [SHIFT+:]
एक्स मोड:
'<,'>/'/" [RET]
- 1. उद्धरण के साथ चारों ओर स्ट्रिंग
- 2. पायथन - उद्धरण चिह्नों के अंदर उद्धरण चिह्नों का उपयोग
- 3. सम्मिलित दोहरे उद्धरण चिह्नों
- 4. विम चारों ओर शब्द के आसपास अतिरिक्त स्पेस डाल
- 5. आर, जब हम एक दोहरे उद्धरण चिह्नों के अंदर दोहरे उद्धरण चिह्नों डाल के साथ आर
- 6. PreparedStatement.setString() उद्धरण चिह्नों के बिना विधि
- 7. परिवर्तनीय '' के चारों ओर ढेर
- 8. भूखंडों के समूहों के चारों ओर सीमाएं
- 9. फ़ील्ड नामों के चारों ओर बैकटिक्स का उपयोग करना
- 10. फ़ाइल के चारों ओर कक्षा रैपर -
- 11. विम अंदर उद्धरण
- 12. अपने केंद्र के चारों ओर आयत घुमाएं
- 13. पाठ के चारों ओर बॉर्डर चादर है
- 14. ब्लेंडर: क्षेत्र के चारों ओर घूमना
- 15. गोलाकार कोनों के चारों ओर बॉक्स छाया?
- 16. ☆ केंद्र के चारों ओर स्पिन कैसे करें?
- 17. ग्राफ डेटाबेस के चारों ओर हाइप ... क्यों?
- 18. आईफोन: UIIextView UIImage के चारों ओर लपेटें?
- 19. छवि के चारों ओर सफेद स्थान
- 20. स्प्लिट स्ट्रिंग, उद्धरण चिह्नों के भीतर सीमांकक अनदेखी (अजगर)
- 21. jQuery $ .post और json_encode इसके चारों ओर उद्धरण के साथ एक स्ट्रिंग लौटा रहा है
- 22. किसी छवि के चारों ओर काली सीमा को हटाकर
- 23. छवियों के चारों ओर पाठ और ब्लॉक तत्वों को लपेटना
- 24. मानचित्रदृश्य में चारों ओर घूमने को अक्षम करें
- 25. लपेटें jQuery में कुछ पाठ के चारों ओर एक अवधि
- 26. WinForms बटन में पाठ के चारों ओर पैडिंग कम करें
- 27. बटन के चारों ओर सीमा को कैसे हटाएं?
- 28. मेन्यूइटम्स के चारों ओर पतली सीमा को हटाकर
- 29. Google मानचित्र में एक बिंदु के चारों ओर त्रिज्या ड्रा
- 30. कार्य-चारों ओर एक स्टैक ओवरव्लो एक्सेप्शन
यह मेरा समझौता था, लेकिन मुझे लगा कि यह बिल्कुल सही नहीं था, खासकर यदि विशेषता के अंदर एक ही उद्धरण था। मुझे नहीं लगता कि एक्सएमएल में हो सकता है, लेकिन यह किसी अन्य स्थिति में सड़क के नीचे हो सकता है जिसके लिए इसी समाधान की आवश्यकता होती है। – ravuya
एकल-उद्धृत विशेषता के अंदर एक एकल उद्धरण ''' होना चाहिए और डबल-उद्धृत विशेषता के अंदर एक डबल कोट '"' होना चाहिए। बेशक एक एकल उद्धरण एक डबल उद्धृत विशेषता के अंदर रह सकता है और इसके विपरीत ... – ephemient