<---
から
--->
までの間の各行の末尾に
数値があるとする.
<--- ガソリン 2500 ケース 200 電車賃 1200 --->この家計簿の集計を行ってミニバッファへ表示する例としては次のようなコマン ドを定義する.これを*scratch*バッファで定義するなりmycalc.elなどのファ イルに保存してM-x load-fileコマンドでこのファイルを読み込んだりした後, 家計簿ファイルのバッファへポイントを移して,M-x my-calcと実行するとミニ バッファに
Sum: 3900
が表示される.
(defun my-calc () "<--- から --->までの行末の数字をすべて足した結果を表示する" (interactive) (save-excursion (let ((sum 0) n) (goto-char (point-min)) ;; バッファ先頭へ (re-search-forward "^<---") ;; <---の検索 (while (re-search-forward "\\(^--->\\)\\|\\([0-9]+$\\)" nil t) (cond ((match-beginning 2) (setq n (buffer-substring (match-beginning 2) (match-end 2))) (message n) (setq n (string-to-number n)) (goto-char (match-beginning 2)) (end-of-line) (setq sum (+ sum n))) ((match-beginning 1) (message (concat "Sum: " (number-to-string sum)))))))))