No VIM, substitua o caminho por barras sem usar barras de escape

10

No vim eu quero substituir um caminho longo /a/b/f/g/d/g por outro /s/g/w/d/g/r em um arquivo de texto. Normalmente eu uso \/ , mas há muitas barras aqui. Existe uma maneira mais fácil?

    
por user13107 31.10.2014 / 04:50

2 respostas

28

Você pode usar outro caractere em vez de barra / como delimitador para o comando de substituição.

Exemplo usando # :

:%s#/a/b/f/g/d/g#/s/g/w/d/g/r#
    
por 31.10.2014 / 05:00
2

Talvez você possa usar o sed

Example 1 – sed @ delimiter: Substitute /opt/omni/lbin to /opt/tools/bin

When you substitute a path name which has /, you can use @ as a delimiter instead of /. In the sed example below, in the last line of the input file, /opt/omni/lbin was changed to /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

De: link

    
por 31.10.2014 / 04:55