आदेश में "&" से प्रत्येक घटना को बदलने के लिए करने के लिए "& &" के लिए, मैं जारी :.,+30s/\\&/\\&\\&/g
पर 30 अधिक लाइनों को चालू लाइन से रेंज में जगह ले लेकिन विम कहते हैं, "पैटर्न नहीं मिला "। मैं डबल बैकस्लैश "\" द्वारा विशेष चरित्र "&" से बच रहा हूं।vim: खोज और "&"
16
A
उत्तर
13
सबकुछ से बचने की कोशिश न करें - :.,+30s/&/&&/g
मेरे लिए काम करता है।
10
आपको नियमित अभिव्यक्ति के पहले भाग में एम्परसैंड से बचने की आवश्यकता नहीं है। यह केवल दूसरे (प्रतिस्थापित) भाग में विशेष अर्थ है।
आप "\ &" कहने वाले पैटर्न की तलाश में हैं और उन्हें "\ & \ &" पैटर्न के साथ प्रतिस्थापित करें।
को बदलने के लिए आसान तरीका सिर्फ है: & है भाग निकले जा करने के लिए _&
&_
रहे हैं:
:.,+30s/&/&&/g
1
यह भी उपयोगी टिप्पणी है कि यदि आप उदाहरण के लिए & स्थिति को बदलने की जरूरत हो सकती है केवल वैकल्पिक अभिव्यक्ति के प्रतिस्थापन बयान में:
:.,+30s/ &/\& /g
^
संबंधित मुद्दे
- 1. vim खोज regex
- 2. vim खोज और दृश्य ब्लॉक मोड में उजागर
- 3. vim केस संवेदी खोज की जगह
- 4. vim: खोज सभी लिखने योग्य बफ़र्स
- 5. vim - मैं बफर कैसे खोज सकता हूं?
- 6. 'खोज' कमांड के आउटपुट को 'vim'
- 7. vim
- 8. अंतिम खोज या खोज और स्ट्रिंग को वापस vim में बदलें?
- 9. vim
- 10. vim
- 11. tmux/vim और OSX
- 12. पुनर्निर्देशन और vim
- 13. VI/VIM में खोज स्कोप को सीमित कैसे करें?
- 14. स्ट्रिंग के लिए खोजें और vi/vim
- 15. vim दृश्य ब्लॉक खोज/बदलें केवल एक लाइन
- 16. vim
- 17. vim
- 18. vim
- 19. vim
- 20. Vim
- 21. vim
- 22. vim
- 23. vim
- 24. vim
- 25. vim -
- 26. vim
- 27. vim
- 28. vim
- 29. vim
- 30. vim
स्पष्ट करने के लिए: ऐसा इसलिए नहीं है क्योंकि '&' मेटाएक्टेक्टर नहीं है: जबकि पैटर्न में यह सत्य है (जब तक '& 'बच निकला नहीं गया था या बहुत जादू मोड सक्रिय किया गया था), प्रतिस्थापन स्ट्रिंग' & 'का मतलब' \ 0' जैसा है: संपूर्ण मिलान वाले सबस्ट्रिंग। चूंकि "पूरी मिलान वाली सबस्ट्रिंग" एक एम्परसेंड है, यह समाधान काम करता है। ध्यान दें कि यदि 'जादू' विकल्प बंद कर दिया गया था, तो कथन "और प्रतिस्थापन में संपूर्ण मिलान पैटर्न का प्रतिनिधित्व करता है" ': s' सहित कई आदेशों में गलत है। – ZyX