Function: ensure-empty-lines
ensure-empty-lines is an interactive and byte-compiled function
defined in subr.el.gz.
Signature
(ensure-empty-lines &optional LINES)
Documentation
Ensure that there are LINES number of empty lines before point.
If LINES is nil or omitted, ensure that there is a single empty line before point.
If called interactively, LINES is given by the prefix argument.
If there are more than LINES empty lines before point, the number of empty lines is reduced to LINES.
If point is not at the beginning of a line, a newline character is inserted before adjusting the number of empty lines.
Probably introduced at or before Emacs version 29.1.
Key Bindings
Source Code
;; Defined in /usr/src/emacs/lisp/subr.el.gz
(defun ensure-empty-lines (&optional lines)
"Ensure that there are LINES number of empty lines before point.
If LINES is nil or omitted, ensure that there is a single empty
line before point.
If called interactively, LINES is given by the prefix argument.
If there are more than LINES empty lines before point, the number
of empty lines is reduced to LINES.
If point is not at the beginning of a line, a newline character
is inserted before adjusting the number of empty lines."
(interactive "p")
(unless (bolp)
(insert "\n"))
(let ((lines (or lines 1))
(start (save-excursion
(if (re-search-backward "[^\n]" nil t)
(+ (point) 2)
(point-min)))))
(cond
((> (- (point) start) lines)
(delete-region (point) (- (point) (- (point) start lines))))
((< (- (point) start) lines)
(insert (make-string (- lines (- (point) start)) ?\n))))))