Wie kann ich eine Reihe von Zahlen summieren, die mit Text in der Region durchsetzt sind (keine rechteckige Region)? Wenn die Region beispielsweise diesen Text enthält:
Widgets 234
Sprockets 44
Nubbins 12
Fork handles 4
4 Candles
Ich suche nach einem Befehl, der 298 irgendwie meldet (298 = 234 + 44 + 12 + 4 + 4) - ich denke, entweder indem ich ihn in den Nachrichtenbereich wiedergebe oder ihn in den Puffer einfüge.
Idealerweise würde es sowohl Ganzzahlen als auch Gleitkommazahlen verarbeiten.
Antworten:
Hier ist eine:
Da es verwendet wird
string-to-number
, wird das Token "1hello" als Nummer "1" behandelt, "hello2" jedoch nicht als Nummer. Es funktioniert auch mit Dezimalstellen (z. B. 2.4).quelle
Speziell für Ihren Fall, vorausgesetzt, dies ist der gesamte Text des Puffers:
replace-regexp
RET[^0-9]+
RET+
RETquelle
calc
Lösung: Region markieren,C-x * g
greifen,V u
(calc-unpack
) und dann tippen,+
bis Sie alle Zahlen summiert haben.Ich kenne keinen eingebauten Befehl, der dies tut, aber Sie könnten Ihren eigenen erstellen:
quelle