count-up

(defun count-up (d) (interactive "P")
  (when (looking-at "[0-9.]")
    (let ((col (current-column))
	  (beg (progn (skip-chars-backward "[0-9.]") (point)))
	  (end (progn (skip-chars-forward "[0-9.]") (point))))
      (let ((num (delete-and-extract-region beg end)))
	(insert (format "%s" (+ (string-to-number num) (or d 1)))))
      (move-to-column col))))

こんなマクロが欲しいかもしれない。

「移動するアクション」->現在の位置を取得という動作が結構多い。
これを次のように書くのが面倒なので、

(progn ac ... (point))
(defmacro point* (&rest ac)
  `(progn ,@ac (point)))

;;(point* (skip-chars-forward "[0-9.]"))とか書ける