¿Cómo puedo sumar un conjunto de números intercalados con texto en la región (no una región rectangular)? Por ejemplo, si la región contiene este texto:
Widgets 234
Sprockets 44
Nubbins 12
Fork handles 4
4 Candles
Estoy buscando un comando que informe 298 de alguna manera (298 = 234 + 44 + 12 + 4 + 4). Supongo que haciendo eco en el área del mensaje o insertándolo en el búfer.
Lo ideal sería hacer frente tanto a los enteros como a los números de coma flotante.
Respuestas:
Aquí hay uno:
Debido a que usa
string-to-number
, tratará el token "1hello" como el número "1", pero no tratará "hello2" como un número. También funciona con decimales (p. Ej., 2.4).fuente
Específicamente para su caso, suponiendo que este sea el texto completo del búfer:
replace-regexp
RET[^0-9]+
RET+
RETfuente
calc
solución: marca la región,C-x * g
para agarrar,V u
(calc-unpack
), luego toca+
hasta que hayas sumado todos los números.No conozco un comando incorporado que haga esto, pero podrías hacer el tuyo propio:
fuente