Aritmética simples do Emacs na substituição de consultas

8

É possível fazer o seguinte em emacs:

Consulta substitua todos os números em uma região pelo número + n, por exemplo, se você tiver:

12 and 7 are nice numbers

seja n 3, ele deve se transformar em

15 and 10 are nice numbers
aluna
fonte

Respostas:

9

Sim, é possível, \&pode ser usado na expressão de substituição para representar a correspondência inteira, da mesma forma que \#&pode ser usado para representar a correspondência inteira como número.

Mais concretamente:

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

E uma citação da documentação

Você pode usar expressões Lisp para calcular partes da sequência de substituição. Para fazer isso, escreva '\,' seguido da expressão na string de substituição. Cada substituição calcula o valor da expressão e a converte em texto sem citar.

Oleg Pavliv
fonte