VIM में, एस्केप स्लैश का उपयोग किए बिना स्लैश के साथ पथ को बदलें


10

विम में मैं एक पाठ फ़ाइल में /a/b/f/g/d/gदूसरे के साथ एक लंबा रास्ता बदलना चाहता हूँ /s/g/w/d/g/r। आमतौर पर मैं उपयोग करता हूं \/लेकिन यहां बहुत अधिक स्लैश हैं। क्या कोई आसान तरीका है?

जवाबों:


29

आप /प्रतिस्थापन कमांड के लिए सीमांकक के रूप में स्लैश के बजाय किसी अन्य वर्ण का उपयोग कर सकते हैं ।

उदाहरण का उपयोग कर #:

:%s#/a/b/f/g/d/g#/s/g/w/d/g/r#

1
बहुत अच्छा, यह अब तक का सबसे अच्छा समाधान है।
सेठ

1
यह ed, sed, perl, आदि में भी काम करता है
deltab

2

शायद आप sed का उपयोग कर सकते हैं

उदाहरण 1 - सीम @सीमांकक: पदार्थ के /opt/omni/lbinलिए/opt/tools/bin

जब आपके पास एक पथ का नाम होता है /, जिसके @बजाय आप एक सीमांकक के रूप में उपयोग कर सकते हैं /। नीचे दिए गए sed उदाहरण में, इनपुट फ़ाइल की अंतिम पंक्ति में, /opt/omni/lbinको बदल दिया गया था /opt/tools/bin

$ sed 's@/opt/omni/lbin@/opt/tools/bin@g' path.txt /usr/kbos/bin:/usr/local/bin:/usr/jbin/:/usr/bin:/usr/sas/bin /usr/local/sbin:/sbin:/bin/:/usr/sbin:/usr/bin:/opt/omni/bin: /opt/tools/bin:/opt/omni/sbin:/root/bin

प्रेषक: http://www.thegeekstuff.com/2009/10/unix-sed-tutorial-advanced-sed-substeration-examples/

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.