Emacs arithmétique simple dans la requête remplacer

8

Est-il possible de faire ce qui suit dans emacs:

Requête remplacez tous les nombres d'une région par le nombre + n, par exemple si vous avez:

12 and 7 are nice numbers

soit n 3, alors il devrait se transformer en

15 and 10 are nice numbers
étudiant
la source

Réponses:

9

Oui, c'est possible, \&peut être utilisé dans l'expression de remplacement pour représenter la correspondance entière, de même \#&peut être utilisé pour représenter la correspondance entière sous forme de nombre.

Plus concrètement:

Mx query-replace-regexp \b[0-9]+\bRETURN\,(+ 3 \#&)

Et une citation de la documentation

Vous pouvez utiliser des expressions Lisp pour calculer des parties de la chaîne de remplacement. Pour ce faire, écrivez «\», suivi de l'expression dans la chaîne de remplacement. Chaque remplacement calcule la valeur de l'expression et la convertit en texte sans guillemet.

Oleg Pavliv
la source