Les commandes de recherche et de substitution en sont un bon exemple. Toutes les recherches d'une chaîne de caractères débutent en mode commande. Lorsqu'on appuie sur /, ce caractère s'affiche sur la dernière ligne de l'écran, et on peut taper le texte à rechercher. Si l'on veut poursuivre la recherche, il suffit de taper sur n, ou N pour repartir dans l'autre direction. Est-il besoin de préciser que cette commande accepte un préfixe multiplicateur, pour sauter directement sur la noccurrence de la chaîne recherchée.
Attention, la fonction de recherche utilise des expressions régulières. Si vous êtes déjà familiarisé avec elles, celle du logiciel grep, par exemple, vous ne serez sans doute pas trop perdu. Sinon, reportez-vous au tableau suivan tpour savoir comment sont interprétés certains caractères spéciaux courants. Pour être honnête, il en existe d'autres, et on peut faire des recherches très précises, mais leur description n'a pas, je crois, sa place ici. Reportez-vous à l'aide de VIM pour avoir une liste complète, si vous en avez besoin.
Enfin, sachez qu'il existe des raccourcis pour faciliter la recherche. En mode commande, vous pouvez taper * pour sauter directement sur la prochaine occurrence du mot sous le curseur, et # pour la dernière occurrence.
Les commandes de subsitution combinent la recherche et le remplacement d'une expression par une autre. Elle se fait en mode ex. Il faut donc taper : pour y accéder. La commande de substitution de base est s/mot1/mot2/, pour remplacer mot1 par mot2. Par défaut, la substitution ne se fait que pour la première occurrence de mot1 sur la ligne du curseur.
Vous pouvez modifier l'effet de la commande en y ajoutant des suffixes : g, qui permet d'étendre le remplacement à tous les fichier, et c, qui demande une confirmation (utile surtout en combinaison avec le précédent). Ainsi :s/Dupond/Dupont/gc remplace toutes les occurrences de Dupond par Dupont dans le fichier. Vous pouvez aussi ajouter un préfixe qui en limite les effets à un certain nombre de lignes : :1,10s/mot1/mot2/ permet d'agir uniquement entre la ligne 1 et la ligne 10. Une fois une que vous avez défini l'élément à rechercher et ce par quoi il doit être remplacé, vous pouvez répéter l'opération simplement en spécifiant une nouvelle zone d'effet. Ainsi :20,30s refait le remplacement précédent, uniquement entre les lignes 20 et 30.
Marc Simon