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
Compris.
%s/\d\+/\=(submatch(0)+1)/g
Http://vim.wikia.com/wiki/Using_an_expression_in_substitute_command
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