W VIM zamień ścieżkę na ukośniki bez użycia ukośników ucieczki

10

W vimie chcę zastąpić długą ścieżkę /a/b/f/g/d/ginną ścieżką /s/g/w/d/g/rw pliku tekstowym. Zwykle używam, \/ale jest tu zbyt wiele ukośników. Czy istnieje prostszy sposób?

użytkownik13107
źródło

Odpowiedzi:

29

Możesz użyć innego znaku zamiast ukośnika /jako separatora do polecenia podstawienia.

Przykład użycia #:

:%s#/a/b/f/g/d/g#/s/g/w/d/g/r#
Cuonglm
źródło
1
Bardzo fajnie, to jak dotąd najlepsze rozwiązanie.
Seth
1
Działa to również w ed, sed, perl itp.
deltab
2

Może możesz użyć sed

Przykład 1 - @separator sed : Zamień /opt/omni/lbinna/opt/tools/bin

Gdy podasz nazwę ścieżki, która ma /, możesz użyć @jako separatora zamiast /. W poniższym przykładzie poniżej, w ostatnim wierszu pliku wejściowego, /opt/omni/lbinzmieniono na /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

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

vfbsilva
źródło