今、メジャーモード作りたくてelisp勉強中。
練習に、>>933 のを作ってみた。

(defun add_line_number ()
"add line number"
(interactive)
(save-excursion
(let ((max-line 0) (current-line 0))
(goto-char (point-max))
(setq max-line (count-lines (point-min) (point)))
(goto-char (point-min))
(setq current-line 1)
(while (<= current-line max-line)
(goto-line current-line)
(insert (format "%d " current-line))
(setq current-line (1+ current-line))
))))

修正した方がいいところがあれば指摘お願い。