Function: duplicate-line

duplicate-line is an autoloaded, interactive and byte-compiled function defined in misc.el.gz.

Signature

(duplicate-line &optional N)

Documentation

Duplicate the current line N times.

Interactively, N is the prefix numeric argument, and defaults to 1. The user option duplicate-line-final-position specifies where to move point after duplicating the line. Also see the copy-from-above-command command.

Probably introduced at or before Emacs version 29.1.

Key Bindings

Source Code

;; Defined in /usr/src/emacs/lisp/misc.el.gz
;;;###autoload
(defun duplicate-line (&optional n)
  "Duplicate the current line N times.
Interactively, N is the prefix numeric argument, and defaults to 1.
The user option `duplicate-line-final-position' specifies where to
move point after duplicating the line.
Also see the `copy-from-above-command' command."
  (interactive "p")
  (unless n
    (setq n 1))
  (let ((line (concat (buffer-substring (line-beginning-position)
                                        (line-end-position))
                      "\n"))
        (pos (point))
        (col (current-column)))
    (forward-line 1)
    (unless (bolp)
      (insert "\n"))
    (duplicate--insert-copies n line)
    (unless (< duplicate-line-final-position 0)
      (goto-char pos))
    (unless (eq duplicate-line-final-position 0)
      (forward-line duplicate-line-final-position)
      (move-to-column col))))