Add gy operator for yanking without indentation

Copies

   (a
    b
    c)

As

(a
 b
 c)
This commit is contained in:
Henrik Lissner 2019-10-10 12:32:33 -04:00
parent 9e3974d2f3
commit 07380af819
No known key found for this signature in database
GPG key ID: 5F6C0EA160557395
3 changed files with 19 additions and 0 deletions

View file

@ -109,6 +109,7 @@
:nv "g@" #'+evil:apply-macro :nv "g@" #'+evil:apply-macro
:nv "gc" #'evil-commentary :nv "gc" #'evil-commentary
:nv "gx" #'evil-exchange :nv "gx" #'evil-exchange
:nv "gy" #'+evil:yank-unindented
:n "g=" #'evil-numbers/inc-at-pt :n "g=" #'evil-numbers/inc-at-pt
:n "g-" #'evil-numbers/dec-at-pt :n "g-" #'evil-numbers/dec-at-pt
:v "g=" #'evil-numbers/inc-at-pt-incremental :v "g=" #'evil-numbers/inc-at-pt-incremental

View file

@ -217,6 +217,19 @@ See `+evil/next-preproc-directive' for details."
(interactive "p") (interactive "p")
(+evil/next-comment (- count))) (+evil/next-comment (- count)))
;;;###autoload (autoload '+evil:yank-unindented "editor/evil/autoload/evil" nil t)
(evil-define-operator +evil:yank-unindented (beg end type register yank-handler)
"Saves the (reindented) characters in motion into the kill-ring."
:move-point nil
:repeat nil
(interactive "<R><x><y>")
(let ((indent (save-excursion (goto-char beg) (current-indentation)))
(text (buffer-substring beg end)))
(with-temp-buffer
(insert text)
(indent-rigidly (point-min) (point-max) (- indent))
(evil-yank (point-min) (point-max)))))
;; ;;
;;; wgrep ;;; wgrep

View file

@ -11,6 +11,11 @@
evil-goggles-enable-delete nil evil-goggles-enable-delete nil
evil-goggles-enable-change nil) evil-goggles-enable-change nil)
:config :config
(add-to-list 'evil-goggles--commands
'(+evil:yank-unindented
:face evil-goggles-yank-face
:switch evil-goggles-enable-yank
:advice evil-goggles--generic-async-advice))
(evil-goggles-mode +1)) (evil-goggles-mode +1))