Dans VIM, remplacez le chemin par des barres obliques sans utiliser de barres obliques d'échappement


10

Dans vim, je veux remplacer un long chemin /a/b/f/g/d/gpar un autre /s/g/w/d/g/rdans un fichier texte. Habituellement, j'utilise \/mais il y a trop de barres obliques ici. Existe-t-il un moyen plus simple?

Réponses:


29

Vous pouvez utiliser un autre caractère au lieu d'une barre oblique /comme délimiteur de la commande de substitution.

Exemple utilisant #:

:%s#/a/b/f/g/d/g#/s/g/w/d/g/r#

1
Très bien, c'est la meilleure solution jusqu'à présent.
Seth

1
Cela fonctionne également dans ed, sed, perl, etc.
deltab

2

Vous pouvez peut-être utiliser sed

Exemple 1 - @délimiteur sed : substitut /opt/omni/lbinà/opt/tools/bin

Lorsque vous substituez un nom de chemin d'accès qui a /, vous pouvez utiliser @comme délimiteur au lieu de /. Dans l'exemple sed ci-dessous, dans la dernière ligne du fichier d'entrée, a /opt/omni/lbinété remplacé par /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/

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.