Articles

Vim search and replace

Posted on

Vim est un éditeur de texte avancé et populaire qui est préinstallé dans la plupart des distributions Linux. C’est un éditeur de texte basé sur la ligne de commande qui est principalement utilisé dans les systèmes d’exploitation non basés sur une interface graphique. Il est hautement configurable et offre de nombreuses fonctionnalités. Un point important concernant Vim est qu’il est hautement optimisé pour la répétition.

Dans cet article, nous allons expliquer l’une de ses fonctionnalités les plus utiles qui est la recherche et le remplacement. Avec une poignée de configuration, vous pouvez rechercher tout ce que vous voulez à la vitesse du feu et avec une granularité plus fine.

Méthode #1 Rechercher et remplacer une occurrence à la fois (en utilisant la commande slash et point)

La façon la plus simple de rechercher et remplacer un mot dans Vim est d’utiliser la commande slash et point. La barre oblique (/) peut être utilisée pour rechercher un mot tandis que le point (.) peut être utilisé pour remplacer ce mot.

Suivez les étapes simples ci-dessous pour rechercher et remplacer n’importe quel mot dans l’éditeur Vim :

  • Ouvrir le fichier dans Vim
  • Appuyer sur la touche barre oblique (/) accompagnée du terme recherché comme « / terme_recherche » et appuyer sur Entrée. Cela mettra en surbrillance le mot sélectionné.
  • Puis frappez la touche cgn pour remplacer le mot en surbrillance et entrez le terme replace_term
  • Retournez en mode normal. Ensuite, appuyez sur la touche « n » pour passer à l’occurrence suivante du terme recherché.
  • Appuyez ensuite sur le point (.) si vous voulez remplacer l’occurrence suivante avec le même terme_remplacement sinon appuyez à nouveau sur la touche « n » pour passer à l’occurrence suivante.

C’est la méthode la plus rapide et la meilleure pour les fonctions de recherche et de remplacement de base car elle n’implique que quelques frappes et moins de perturbations dans votre travail actuel. Cependant, pour la recherche d’un mot qui apparaît trop souvent, cela deviendra une tâche répétitive et chronophage.

Avec Vim, il existe un autre meilleur moyen d’éviter cette tâche répétitive qui est l’utilisation de la commande de substitution.

Méthode #2 Rechercher et remplacer en utilisant la commande de substitution

La commande de substitution peut être utilisée pour effectuer des fonctions de recherche et de remplacement de base à avancées avec une seule commande. La syntaxe de cette commande est :

$ :s/<search_term><replace_term>/option

Notez que vous devez entrer cette commande en mode normal.

  • S : signifie substitut
  • search_term : le mot que vous voulez rechercher et remplacer
  • replace_term : le mot avec lequel vous voulez le remplacer
  • Option : c (pour confirmation), g (remplacer toutes les occurrences sur une ligne), i (pour ignorer la casse)

Recherche et remplacement

Pour effectuer une recherche et un remplacement de base à l’aide de la commande de remplacement, utilisez la syntaxe suivante :

:%s/<search_term><replace_term>/g

Cette commande remplacera toutes les instances de search_term par le replace_term.

Par exemple, voici notre exemple de texte :

« Ubuntu est l’un des OS Linux les plus utilisés. Ubuntu comprend des milliers de programmes utiles. Avec la ligne de commande Ubuntu, vous pouvez accomplir presque tout type de tâche ».

Pour remplacer chaque occurrence d' » Ubuntu  » par  » Debian  » dans le texte suivant, il faudrait utiliser la commande suivante :

:%s/Ubuntu/Debian/g

Recherche et remplacement sur une seule ligne

Pour rechercher et remplacer l’occurrence d’un mot uniquement sur une seule ligne au lieu du fichier entier, utilisez la syntaxe suivante :

:s/<search_term></replace_term/g

Par exemple, pour remplacer l’occurrence de Ubuntu par Debian dans l’exemple de texte ci-dessus, la commande suivante sans le symbole % serait utilisée :

:s/Ubuntu/Debian/g

Recherche et remplacement avec confirmation

Si vous voulez qu’on vous demande confirmation avant de remplacer le terme recherché, utilisez « c » à la fin de la commande de recherche comme suit :

:s/<search_term><replace_term>/gc

La commande ci-dessus demandera une confirmation avant chaque remplacement (Saisissez y pour oui tandis que n pour non).

Recherche et remplacement insensibles à la casse

Lorsque vous effectuez une recherche et un remplacement dans Vim, par défaut, elle est sensible à la casse. Vous pouvez effectuer une recherche insensible à la casse en ajoutant « i » à la fin de la commande comme suit :

:s/<search_term><replace_term>/gi

Par exemple, pour rechercher le terme « Ubuntu » quelle que soit sa casse (UBUNTU, Ubuntu, ubuntu, uBuntu), on utilise la commande suivante :

:s/ubuntu/debian/gi

Recherche et remplacement du mot entier

Par défaut, la commande de remplacement recherche toute correspondance qu’elle soit partielle ou complète. Afin de faire correspondre le terme exact search_term et de le remplacer par le terme replace_term, enfermez le terme search _term dans le « <> ».

Par exemple, dans certains documents, vous voulez rechercher et remplacer le mot exact « you » par « me ». Dans ce cas, on utilisera la commande suivante :

:s/\<vous>/me/

Elle trouvera le mot « vous » et le remplacera par « moi ». En revanche, il ne remplacera pas les mots comme « yours ».

Recherche et remplacement de mots parmi des lignes particulières

Pour rechercher un mot parmi les lignes particulières au lieu d’une seule ligne ou du fichier entier, la syntaxe suivante peut être utilisée :

:<start_line><end_line>s/<search_term><replace_term>/g

Par exemple, pour rechercher et remplacer l’occurrence de Ubuntu par Debian à partir des lignes allant de 3 à 8 dans un certain fichier, la commande serait :

:1,10s/ubuntu/debian/g

Pour rechercher et remplacer l’occurrence d’un mot de la ligne actuelle au nombre x de lignes suivantes, la syntaxe suivante serait utilisée :

:s/search_term/replace_term/g x

De même, pour rechercher et remplacer l’occurrence d’un mot de la ligne courante à la dernière ligne : on utiliserait la syntaxe suivante :

:.,$s/search_term/replace_term/g

CONCLUSION

Dans cet article, nous avons appris les deux façons en ligne de commande de rechercher et de remplacer n’importe quel mot dans un éditeur Vim. La première commande qui était l’utilisation de la barre oblique et du point est la méthode la plus simple et la plus facile mais elle s’avère répétitive lorsque vous recherchez et remplacez un mot qui apparaît trop souvent. La commande qui est la commande de substitution une fois pourrait sembler difficile et complexe, mais une fois que vous commencez à la pratiquer, vous la trouverez extrêmement utile dans de multiples scénarios.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *