Di VIM, ganti jalur dengan garis miring tanpa menggunakan garis miring keluar

10

Dalam vim saya ingin mengganti jalur panjang /a/b/f/g/d/gdengan yang lain /s/g/w/d/g/rdalam file teks. Biasanya saya menggunakan \/tetapi ada terlalu banyak garis miring di sini. Apakah ada cara yang lebih mudah?

pengguna13107
sumber

Jawaban:

29

Anda bisa menggunakan karakter lain alih-alih slash /sebagai pembatas untuk perintah substitusi.

Contoh menggunakan #:

:%s#/a/b/f/g/d/g#/s/g/w/d/g/r#
cuonglm
sumber
1
Sangat bagus, ini adalah solusi terbaik sejauh ini.
Seth
1
Ini juga berfungsi di ed, sed, perl, dll.
deltab
2

Mungkin Anda bisa menggunakan sed

Contoh 1 - @pembatas sed : Pengganti /opt/omni/lbinke/opt/tools/bin

Saat Anda mengganti nama jalur yang dimiliki /, Anda dapat menggunakan @sebagai pembatas alih-alih /. Pada contoh sed di bawah ini, pada baris terakhir dari file input, /opt/omni/lbindiubah menjadi /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

Dari: http://www.thegeekstuff.com/2009/10/unix-sed-tutorial-advanced-sed-substitution-examples/

vfbsilva
sumber