Function: evil-delete
evil-delete is an interactive and byte-compiled function defined in
evil-commands.el.
Signature
(evil-delete BEG END &optional TYPE REGISTER YANK-HANDLER)
Documentation
Delete text from BEG to END with TYPE.
Save in REGISTER or in the kill-ring with YANK-HANDLER.
Key Bindings
Source Code
;; Defined in ~/.emacs.d/elpa/evil-20251108.138/evil-commands.el
(evil-define-operator evil-delete (beg end type register yank-handler)
"Delete text from BEG to END with TYPE.
Save in REGISTER or in the kill-ring with YANK-HANDLER."
(interactive "<R><x><y>")
(when (and (memq type '(inclusive exclusive))
(not (evil-visual-state-p))
(eq 'evil-delete evil-this-operator)
(save-excursion (goto-char beg) (bolp))
(save-excursion (goto-char end) (eolp))
(<= 1 (evil-count-lines beg end)))
;; Imitate Vi strangeness: if motion meets above criteria,
;; delete linewise. Not for change operator or visual state.
(let ((new-range (evil-line-expand beg end)))
(setq beg (car new-range)
end (cadr new-range)
type 'line)))
(unless register
(let ((text (filter-buffer-substring beg end)))
(unless (string-match-p "\n" text)
;; set the small delete register
(evil-set-register ?- text))))
(let ((evil-was-yanked-without-register nil))
(evil-yank beg end type register yank-handler))
(cond
((eq type 'block)
(evil-apply-on-block #'delete-region beg end nil))
((and (eq type 'line)
(= end (point-max))
(or (= beg end)
(/= (char-before end) ?\n))
(/= beg (point-min))
(= (char-before beg) ?\n))
(delete-region (1- beg) end))
(t (delete-region beg end)))
(when (and (eq type 'line)
(called-interactively-p 'any))
(evil-first-non-blank)
(when (and (not evil-start-of-line)
evil-operator-start-col
;; Special exceptions to ever saving column:
(not (memq evil-this-motion '(evil-forward-word-begin
evil-forward-WORD-begin))))
(move-to-column (if (and (eq most-positive-fixnum temporary-goal-column)
(memq last-command '(next-line previous-line)))
temporary-goal-column
evil-operator-start-col)))))