Make evil-delete invoke wgrep-mark-deletion on lines

This commit is contained in:
Henrik Lissner 2017-05-17 18:24:16 +02:00
parent 54383a8dde
commit 8648ea0314
2 changed files with 23 additions and 1 deletions

View file

@ -222,3 +222,20 @@ evil-window-move-* (e.g. `evil-window-move-far-left')"
(+evil--ex-match-init hl-name)
(let ((result (car-safe (evil-ex-parse-global arg))))
(+evil--ex-buffer-match result hl-name nil (point-min) (point-max))))))
;; --- wgrep ------------------------------
;;;###autoload (autoload '+evil-delete "feature/evil/autoload/evil" nil t)
(evil-define-operator +evil-delete (beg end type register yank-handler)
"A wrapper around `evil-delete' for `wgrep' buffers that will invoke
`wgrep-mark-deletion' on lines you try to delete."
(interactive "<R><x><y>")
(condition-case ex
(evil-delete beg end type register yank-handler)
('text-read-only
(evil-apply-on-block
(lambda (beg _)
(goto-char beg)
(call-interactively #'wgrep-mark-deletion))
beg (1- end) nil))))

View file

@ -87,7 +87,12 @@
;; --- keybind fixes ----------------------
(map! ;; undo/redo for visual regions
:v "C-u" #'undo-tree-undo
:v "C-r" #'undo-tree-redo)
:v "C-r" #'undo-tree-redo
(:after wgrep
;; a wrapper that invokes `wgrep-mark-deletion' across lines
;; you use `evil-delete' on.
:map wgrep-mode-map :n "d" #'+evil-delete))
;; --- evil hacks -------------------------