Простая арифметика Emacs в запросе замены

8

Можно ли сделать следующее в emacs:

Запрос замените все числа в регионе на число + n, например, если у вас есть:

12 and 7 are nice numbers

пусть n будет 3, тогда оно должно преобразоваться в

15 and 10 are nice numbers
студент
источник

Ответы:

9

Да, это возможно, \&может использоваться в выражении замены для представления всего совпадения, аналогично \#&может использоваться для представления всего совпадения в виде числа.

Более конкретно:

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

И цитата из документации

Вы можете использовать выражения Lisp для вычисления частей замещающей строки. Для этого напишите '\,', а затем выражение в строке замены. Каждая замена вычисляет значение выражения и преобразует его в текст без кавычек.

Олег Павлив
источник