ใน VIM ให้แทนที่พา ธ ด้วยสแลชโดยไม่ใช้ Escape slashes


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 - sed @คั่น: แทน/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-substitution-examples/

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.