Par exemple, si je voulais une recherche et un remplacement par des chaînes contenant des barres obliques en arrière ou en avant, comment cela se ferait-il dans vim? Merci!
Exemples de recherche et remplacement: :%s/foo/bar/g
et si je voulais trouver toutes les occurrences de <dog/>
et remplacez-le par <cat\>
De la même manière que vous échappez aux personnages presque partout ailleurs dans les programmes Linux, avec une barre oblique inverse:
:%s/<dog\/>/<cat\\>
Mais notez que vous pouvez sélectionner un délimiteur différent à la place:
:%s@<doc/>@<cat\\>@
Cela vous évite de taper toutes ces barres obliques longues et déroutantes dans des modèles avec une tonne de barres obliques.
De la documentation :
À la place du
/
qui entoure le modèle et la chaîne de remplacement, vous pouvez utiliser tout autre caractère codé sur un octet, mais pas un caractère alphanumérique,\
,"
ou|
. Ceci est utile si vous souhaitez inclure un/
dans le modèle de recherche ou la chaîne de remplacement.
%s:<dog/>:<cat>
Vous pouvez remplacer les délimiteurs/s'ils deviennent ennuyeux pour certains modèles.
Citez-les avec une barre oblique inverse. En outre, il est souvent utile d'utiliser un autre délimiteur en plus de la barre oblique.
:%s#<dog/>#<cat\\>#
ou si vous devez utiliser une barre oblique comme délimiteur de commande de substitution
:%s/<dog\/>/<cat\\>/
La syntaxe est:
:%s/<dog\/>/<cat\\>/g
Je cherchais quelque chose de similaire, pour rechercher des valeurs de registre contenant le /
caractère (pour enregistrer une macro). La solution consistait à rechercher en utilisant le ?
jeton au lieu du /
.