Patrice Ferlet
Patrice Ferlet
Créateur de ce blog.
Publié le oct. 2, 2009 Temps de lecture: 4 min

Me suivre sur Mastodon

Astuce vim

Toujours accroc à l’outil de travail le plus puissant selon moi, j’ai nommé: le terminal, vim est donc comme vous le savez mon EDI (ou IDE pour les anglicistes). Si vous passez à vim pour développer, il faudra avoir certains réflexes et en perdre d’autres. Voici quelques questions qu’on m’a posé et auxquelles j’ai des réponses.

En premier lieu, le chercher/remplacer. Chercher reviens à faire: -Echap si vous êtes en édition -presser / ou ? pour respectivement chercher après ou avant le curseur -taper une expression, un mot… -presser Entrer

Pour chercher la suivante occurrence, pressez “n”, la précédente “N” (pensez à **N**ext).

Remplacer est plus “tordu” mais relativement simple. Il faut utiliser la commande “s” comme “**S**ubstitute. Par défaut, la commande “s” agit sur la prochaine occurrence trouvée: -pressez Echap si vous êtes en train d’éditer -presser la touche “:” pour faire apparaître la ligne de commande (qui apparaîtra en bas de l’écran à gauche) -presser s/chaîne à trouver/chaîne de remplacement/ -presser Entrer

Évidemment, vous pouvez utiliser des expressions régulière. Pour que la commande agisse sur le fichier complet, utilisez “%”:

:%s/expression de départ/expression de remplacement/

Maintenant, quelques trucs que j’utilise et qui sont bien pratique.

Commenter un bloc de ligne est une chose fréquente en développement pour activer ou désactiver plusieurs lignes de code. Voici comment je m’y prend avec PHP qui utilise “//” pour le commentaire “one-line”. -Je me place en début de la première ligne de la section à commenter -Je passe en mode “Visual geometry” en pressant Ctrl+v -avec les flèches, je sélectionne la première colonne -Je presse Maj+I pour passer en insertion visuelle, puis “//” puis Echap.

Une demi seconde plus tard voilà mes “//” sur toutes les lignes que j’ai sélectionné. Pour réactiver les ligne: -Echap, Ctrl+v -sélection des deux colonne contenant “//” -presser “x” (supprimer)

Voilà.

Il existe une autre méthode: -Echap, Maj+V -Sélection des lignes -Presser “:”, apparaît alors en bas de page la ligne ”:’<,’>" -Ajouter s,^,//, -Valider avec Entrée

Vous remarquez que j’utilise un autre caractère que “/” après le “s” pour éviter d’avoir à échapper les slash à ajouter…

En fait, la commande “s” fonctionne comme ceci: -s -caractère de séparation -chaine à trouver -caractère de séparation -chaine de remplacement -caractère de séparation -modification (g, i…)

Par convention on utilise “/” comme caractère de séparation, mais vous pouvez utiliser n’importe quel caractère qui vous arrange !

Notez: après l’ajout de commentaire il se peut que la colonne 1 soit en surbrillance, faite Echap puis :nohl pour la faire disparaître.

Placer des bookmarks ou “marqueurs” est assez sympa, cela permet de retrouver des lignes rapidement ou de faire des opérations entre deux marques. Pour bookmarker une ligne il suffit de se placer là où vous souhaitez l’ajouter et de presser: Echap puis “mX” où “X” est un caractère de votre choix (a,b,… ou 1,2,…). L’idée étant de “nommer” la marque.

Pour aller à cette ligne, tapez: Echap, puis ‘X en replaçant “X” par le nom de la marque. Pour retrouver les marks, pressez Echap, puis “:marks”, une liste apparaîtra avec vos marks et celle par défaut.

Alors justement, si nous voulons remplacer des choses entre deux lignes ou deux marques, il suffit d’utiliser un “rang de bornes” qui peut fonctionner dans toutes les commandes vim. En fait, vim fonctionne de cette manière en commande:

:[range] commande

Donc par exemple

:2,6 s/foo/bar/
:'a, 'b s/foo/bar/

La première ligne remplace “foo” par “bar” de la ligne 2 à la ligne 6. La seconde ligne fait pareil, mais de la marque “a” à la marque “b”. C’est finalement pas sorcier !

Correction orthographique

Je ne tape jamais mes articles de blog directement dans le navigateur, mais je passe par vim pour garder le fichier sur mon poste. J’utilise la correction automatique pour enlever un maximum de fautes de grappe (oui j’en laisse plein, j’avoue ne pas le faire tout le temps :))

En fait, durant mon édition de texte, je fais: -“Echap: :w” pour sauver -:!aspell -c “%”

Cela lance le correcteur orthographique “aspell”, il suffit de suivre les indications. Quand cela est terminé, vim me propose de rechercher le fichier pour avoir mes modification en pressant “C”.

C’est encore une fois un truc tout bête, j’utilise “!” pour exécuter une commande de terminal. Vous pouvez par exemple utiliser “sort” pour classer le contenu du document en faisant:

:!sort "%" > "%"

Allez je vous laisse tranquille pour le moment :)

comments powered by Disqus