diff --git a/modules/config/default/+bindings.el b/modules/config/default/+bindings.el index c8ab4f626..1ae89296e 100644 --- a/modules/config/default/+bindings.el +++ b/modules/config/default/+bindings.el @@ -326,6 +326,7 @@ :m "gd" #'+lookup/definition :m "gD" #'+lookup/references :n "gp" #'+evil/reselect-paste + :v "gp" #'+evil/paste-preserve-register :n "gr" #'+eval:region :n "gR" #'+eval/buffer :v "gR" #'+eval:replace-region diff --git a/modules/feature/evil/autoload/evil.el b/modules/feature/evil/autoload/evil.el index a92bf127d..ea3421293 100644 --- a/modules/feature/evil/autoload/evil.el +++ b/modules/feature/evil/autoload/evil.el @@ -27,6 +27,14 @@ (save-excursion (goto-char beg) (point-marker)) end))) +;;;###autoload +(defun +evil/paste-preserve-register () + "Call `evil-paste-after' without overwriting the clipboard (by writing to the +0 register instead). This allows you to paste the same text again afterwards." + (interactive) + (let ((evil-this-register ?0)) + (call-interactively #'evil-paste-after))) + (defun +evil--window-swap (direction) "Move current window to the next window in DIRECTION. If there are no windows there and there is only one window, split in that direction and place this