Emacs einfache Arithmetik in Abfrage ersetzen

8

Ist es möglich, Folgendes zu tun emacs:

Abfrage Ersetzen Sie alle Zahlen in einer Region durch die Zahl + n, zum Beispiel wenn Sie:

12 and 7 are nice numbers

Sei n 3, dann sollte es sich in verwandeln

15 and 10 are nice numbers
Schüler
quelle

Antworten:

9

Ja, es ist möglich, \&kann im Ersetzungsausdruck verwendet werden, um die gesamte Übereinstimmung darzustellen, \#&kann ebenfalls verwendet werden, um die gesamte Übereinstimmung als Zahl darzustellen.

Konkreter:

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

Und ein Zitat aus der Dokumentation

Sie können Lisp-Ausdrücke verwenden, um Teile der Ersatzzeichenfolge zu berechnen. Schreiben Sie dazu '\' gefolgt vom Ausdruck in die Ersatzzeichenfolge. Jede Ersetzung berechnet den Wert des Ausdrucks und konvertiert ihn ohne Anführungszeichen in Text.

Oleg Pavliv
quelle