delete-line

別解2通り。

(defun delete-line (&optional arg)
  (interactive "P")
  (progn
    (kill-line arg)
    (pop kill-ring)))
(defun delete-line ()
  (interactive)
  (delete-region (point)
                 (save-excursion
                   (end-of-line)
                   (point))))

prefix argument 付きで kill-line すると複数行まとめて消せるという事実は案外知られていない、かな。
いや、しかし C-q つぶしちゃっていいものなのだろうか。

追記

もう1個思いついた。

(defun delete-line (&optional arg)
  (interactive "P")
  (let ((kill-ring nil))
    (kill-line arg)))

いやー、dynamic scope ってすごいね。

追記 #2

コメントでご指摘。kill-ring-yank-pointer もケアしてやらないとだめらしい。ということで、1個目のと、3個目のはこうするべき。

(defun delete-line (&optional arg)
  (interactive "P")
  (progn
    (kill-line arg)
    (pop kill-ring)
    (setq kill-ring-yank-pointer kill-ring)))
(defun delete-line (&optional arg)
  (interactive "P")
  (let (kill-ring kill-ring-yank-pointer)
    (kill-ring arg)))