vim regex incrémente tous les nombres de 1

J'ai une instruction préparée en java que j'ajoute un argument à l'avant. Longue histoire courte, je dois prendre une tonne de méthodes set et incrémenter leur premier argument de 1.

Je voudrais un moyen rapide de faire une recherche et de remplacer tous les nombres correspondants, puis de les incrémenter d'un.

28
demandé sur user606723 2012-05-03 00:01:17

3 réponses

42
répondu user606723 2012-05-02 20:14:54

La seule expression rationnelle que vous devez savoir est \d.

:g/\d/exe "normal! \<C-A>"
11
répondu gpojd 2012-05-02 20:18:01

J'ai mal interprété la question comme demandant comment incrémenter un nombre par un sur chaque ligne, c'est-à-dire

var1
var1
var1

Être

var1
var2
var3

J'ai donc pensé poster une réponse pour cela. Le lien @user606723 fourni montre que vous pouvez le faire avec (disons entre les lignes 1 et 3):

:let counter=0|1,3g//let counter=counter+1|s/^/\=counter."\t"
0
répondu Matt 2018-03-26 11:19:20