Admettons que vous ayez devant les yeux un bloc de code que vous souhaitez commenter proprement, c’est à dire sans ajouter de commentaire devant les commentaires.
Exemple : une crontab générique :
# mm(0-59) hh(0-23) dd(1-31) MM(0-12) DAY(0-sunday, 1-monday, ...) command # Eat 00 12 * * * * /bin/life/eat.sh # Drink 00,15,30,45 * * * * /bin/life/drink.sh
Dans ce cas, l’expression régulière, dans vi, est (en mode édition) :
%s/^#\@!/#/g
Traduction : « Pour la totalité du fichier, remplace le début d’une ligne ne commençant pas par « # » par un commentaire ».
« % » = la totalité du fichier. Si vous souhaitez agir sur une partie seulement, remplacez-le par le numéro de la ligne de début et celui de fin, séparés par une virgule. Exemple « 10,20 ».
« s » = « substitute ». On demande un remplacement de ligne.
« /^#\@!/ » = première partie de l’expression. La chaîne que l’on cherche. « ^# » = « commençant par # … ». « \@! » = code pour inverser la recherche. Le genre de chose qui ne se devine pas.
« /#/ » = la seconde partie. La chaîne de remplacement.
« g » = faire pour chaque occurrence trouvée.
Au final, le fichier contiendra ceci :
#mm(0-59) hh(0-23) dd(1-31) MM(0-12) DAY(0-sunday, 1-monday, ...) command # Eat #00 12 * * * * /bin/life/eat.sh # Drink #00,15,30,45 * * * * /bin/life/drink.sh
Décidément, on n’a jamais fait le tour de Vi…
Des problèmes ? des questions ? Exprimez-vous ! Les commentaires sont ouverts. Coquilles et fautes de grammaires sont notre lot quotidien : signalez-les nous à m.capello@dbsqware.com