Vous pouvez demander à vim d'enregistrer les actions que vous êtes en train d'effectuer pour les répéter simplement plus tard. Demonstration:
Je saisis une ligne ...
deny ip addr 127.0.0.1
pour arriver au résultat suivant :
deny ip addr 127.0.0.1
deny ip addr 127.0.0.2
j'ai
* copié la ligne courante (Y)
* immédiatement collé (p)
* je me suis rendu en fin de ligne ($)
* j'ai inscrémenté la valeur numérique sous le curseur () ( :h CTRL-A pour plus de détails )
Je note ce "combo" comme suit :
Yp$
Si j'ai 10 lignes à créer, j'aimerais poivoir dire à vim de répéter 9 fois la même commande. Je ne peux pas me servir de "." qui ne fait que répeter une insertion.
la solution est d'enregistrer le combo au moment ou je m'en sers pour demander à vim de le répéter ( :h q ou :h recording ).
* Chaque enregistrement porte un nom d'un seul symbole compris entre 0 et 9, entre a et z ou entre A et Z.
* On commence l'enregistrement grâce à qNom ( en mode normal )
* On arrête l'enregistrement grâce à q ( en mode normal )
* On répête l'enregistrement grâce à @Nom ( en mode normal ). On peut programmer n répétions succéssives par ,@Nom
* On répête le dernier enregistrement appelé grâce à @@ ( en mode normal )
Pour stocker une chaîne dans un buffer nommé, on peut aussi préfixer n'importe quelle commande de copie dans le buffer anonyme (y, d, x, etc.) par un nom de buffer avec le caractère " (guillemets) :
La commande "add va stocker la ligne courante dans le buffer nommé 'a', puis l'effacer (attention, le retour chariot est lui aussi stocké, et a comme effet de placer le curseur sur le premier token de la ligne suivante si le buffer est joué avec @).
Pour répéter le dernier enregistrement, ou "action", on peut aussi faire . (point).
En pratique, cela nous donne :
1. Saisie de la ligne
deny ip addr 127.0.0.1
( pour repasser en mode normal )
2. Enregistrement ( que l'appelle "a" )
qa
Yp$
q
( c'est sur 3 lignes pour plus de lisibilité, tout ca se tappe à la suite )
3. répétition
8@a
4. résultat final
deny ip addr 127.0.0.1
deny ip addr 127.0.0.2
deny ip addr 127.0.0.3
deny ip addr 127.0.0.4
deny ip addr 127.0.0.5
deny ip addr 127.0.0.6
deny ip addr 127.0.0.7
deny ip addr 127.0.0.8
deny ip addr 127.0.0.9
deny ip addr 127.0.0.10
voilà qui allège le boulot du sysop.