J'édite un fichier .sql dans Vim:
INSERT INTO apps_forms (app_id, form_id) VALUES
(1, 1),
Ce que je cherche à faire est d'arracher la (1, 1),
ligne et de la coller 137 fois; cependant, je veux que le deuxième nombre entre parenthèses soit incrémenté à chaque fois. La sortie ressemblerait à:
INSERT INTO apps_forms (app_id, form_id) VALUES
(1, 1),
(1, 2),
(1, 3),
...
(1, 137),
Existe-t-il un moyen de le faire dans Vim et, si oui, quelle commande dois-je utiliser?
Merci!
la source
qqyypW<c-a>q135@q
. Encore plus court si vous utilisezY
au lieu deyy
.Les récents Vims ont appris à incrémenter des régions visuelles sélectionnées ainsi qu'à créer une séquence. Vous pouvez donc le faire après avoir collé votre ligne 137 fois:
1) sélectionner visuellement le bloc ( Ctrl-V) le deuxième 1 à partir de la ligne 3.
2) appuyez sur gCtrl-A
J'ai enregistré un casting d'écran ici
Avertissement: Cela nécessite un Vim 7.4.900 ou plus.
la source
Le moyen facile à comprendre / facile à retenir / facile à adapter à d'autres situations: utilisez le plugin VisIncr (si vous préférez utiliser une version qui fonctionne bien avec les gestionnaires de paquets de ce siècle plutôt que de traiter avec
vimball
s , vous pouvez l'obtenir auprès de GitHub ). Avec ça:(1, 1),
ligne et tirez dessus:Vy
136p
1
et marquez-la verticalement:C-vGf)h
:II
:help visincr
.la source
Je jouerais avec
g^a
.Essayez
137i0^v137kg^a
.la source