>>148
基本的に、 (push-mark) とかは対話的な操作専用。
非対話的にやるなら、直接 buffer-substring で文字列を取得して insert する。

(save-excursion
(goto-char (point-min))
(forward-line 1)
(let ((first-line (buffer-substring (point-min) (point))))
(delete-region (point-min) (point))
(goto-char (point-max))
(newline)
(insert first-line)))

こんな感じかな。