Existe-t-il une alternative dans la recherche et le remplacement vim pour les chaînes, que d'avoir à échapper chaque caractère spécial dans la chaîne.
Par exemple, si je veux faire correspondre la chaîne suivante et la remplacer par quelque chose
[ERROR] Login unsucessful
Ensuite, je dois faire
:%s/\[ERROR\]\ Login\ unsucessful/something/g
Et cela devient beaucoup plus laid et douloureux pour les chaînes complexes contenant beaucoup de caractères spéciaux
Je voudrais faire quelque chose comme
:%s/"[ERROR] Login unsucessful"/something/g
ce qui éviterait toute fuite. Existe-t-il une fonctionnalité comme celle-ci?
la source
/
pour/\v
activer "très magique" pour la plupart des recherches, j'ai donc mappé//
pour/
démarrer une recherche non modifiée (utile pour parcourir l'historique de recherche en ignorant les modificateurs) et/v/
pour/\V
désactiver rapidement toute magie pour la recherche.Vous n'avez pas besoin d'échapper aux espaces. Donc ça:
devrait en fait être:
Et, bien sûr, vous pouvez activer un "mode" très nomagique pour rendre ces caractères spéciaux moins spéciaux:
Tu vois
:help /magic
.la source
En plus des drapeaux nomagiques mentionnés dans d'autres réponses.
Il arrive souvent que vous n'ayez pas besoin d'être précis dans votre chaîne de recherche
Par exemple, pour faire correspondre
Vous pourriez utiliser l'expression
Évidemment, vous devez savoir que vos données ne contiendront pas d'autres chaînes, différentes de votre cible cible mais correspondant à l'expression.
la source