如何运行缓冲区的总和?

Ray*_*ond 1 emacs elisp

所以,从我的日志文件,我处理了一些字符串,最后得到了这个结果,让我们说缓冲区名称为" 1 "

12
23
34
45
Run Code Online (Sandbox Code Playgroud)

如何获得给定缓冲区的总和?

(defun sum-of-buffer (buf)
  (interactive "bBuffer Name: ")
   ....
  (message "%i" sum))
Run Code Online (Sandbox Code Playgroud)

还是有方便的功能组合?

law*_*ist 5

如何使用calc- 选择矩形形状的区域 - 并键入: C-u C-x * :

或者,怎么样?:

(let ((sum 0))
  (save-excursion
    (goto-char (point-min))
    (while (re-search-forward "[0-9]*\\.?[0-9]+" nil t)
      (setq sum (+ sum (string-to-number (match-string 0))))))
  sum)
Run Code Online (Sandbox Code Playgroud)