En VIM, reemplace la ruta con barras sin usar barras de escape

10

En vim quiero sustituir una ruta larga /a/b/f/g/d/gpor otra /s/g/w/d/g/ren un archivo de texto. Usualmente uso \/pero hay demasiadas barras aquí. hay una manera mas facil?

usuario13107
fuente

Respuestas:

29

Puede usar otro carácter en lugar de barra /como delimitador del comando de sustitución.

Ejemplo usando #:

:%s#/a/b/f/g/d/g#/s/g/w/d/g/r#
Cuonglm
fuente
1
Muy bien, esta es la mejor solución hasta ahora.
Seth
1
Esto también funciona en ed, sed, perl, etc.
deltab
2

Quizás puedas usar sed

Ejemplo 1 - @delimitador de sed : sustituir /opt/omni/lbinpor/opt/tools/bin

Cuando sustituye un nombre de ruta que tiene /, puede usarlo @como delimitador en lugar de /. En el siguiente ejemplo de sed, en la última línea del archivo de entrada, /opt/omni/lbinse cambió a /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: http://www.thegeekstuff.com/2009/10/unix-sed-tutorial-advanced-sed-substitution-examples/

vfbsilva
fuente