У VIM замініть шлях косою рисою, не використовуючи косої риски


10

У vim я хочу замінити довгий шлях /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/

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.