Add new command `duplicate-line'

* lisp/misc.el (copy-from-above-command): Mention it.
(duplicate-line): New command (bug#46621).
This commit is contained in:
Lars Ingebrigtsen 2022-06-17 19:33:48 +02:00
parent 4311bd0bd7
commit 6362f65474
2 changed files with 20 additions and 1 deletions

View file

@ -298,6 +298,10 @@ startup. Previously, these functions ignored
* Changes in Emacs 29.1
---
** New command 'duplicate-line'.
This command duplicates the current line the specified number of times.
---
** Files with the '.eld' extension are now visited in 'lisp-data-mode'.

View file

@ -33,7 +33,9 @@
"Copy characters from previous nonblank line, starting just above point.
Copy ARG characters, but not past the end of that line.
If no argument given, copy the entire rest of the line.
The characters copied are inserted in the buffer before point."
The characters copied are inserted in the buffer before point.
Also see the `copy-line' command."
(interactive "P")
(let ((cc (current-column))
n
@ -61,6 +63,19 @@ The characters copied are inserted in the buffer before point."
(+ n (point)))))))
(insert string)))
;;;###autoload
(defun duplicate-line (&optional n)
"Duplicate the current line N times.
Also see the `copy-from-above-command' command."
(interactive "p")
(let ((line (buffer-substring (line-beginning-position) (line-end-position))))
(save-excursion
(forward-line 1)
(unless (bolp)
(insert "\n"))
(dotimes (_ n)
(insert line "\n")))))
;; Variation of `zap-to-char'.
;;;###autoload