diff options
| author | Tom Dalziel <33435574+tomdl89@users.noreply.github.com> | 2021-04-09 10:57:43 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-04-09 10:57:43 +0200 |
| commit | 7d00c23496c25a66f90ac7a6a354b1c7f9498162 (patch) | |
| tree | 1292c2c340d4958488fc86c75478fd5d3220a6b1 /evil-ex.el | |
| parent | d3cc85bf828f04256de4a36ddb7624064b0252c8 (diff) | |
Fix `C-r` at evil ex search prompt (#1453)
* Introduce `evil-paste-clear-minibuffer-first` to aid `C-r` on search
* Add test for pasting from register in ex-search prompt
Diffstat (limited to 'evil-ex.el')
| -rw-r--r-- | evil-ex.el | 9 |
1 files changed, 8 insertions, 1 deletions
@@ -264,6 +264,11 @@ Clean up everything set up by `evil-ex-setup'." (funcall runner 'stop))))) (put 'evil-ex-teardown 'permanent-local-hook t) +(defvar evil-paste-clear-minibuffer-first nil + "`evil-paste-before' cannot have `delete-minibuffer-contents' called +before it fetches certain registers becuase this would trigger various ex-updates, +sometimes moving point, so `C-a' `C-w' etc. would miss their intended target.") + (defun evil-ex-remove-default () "Remove the default text shown in the ex minibuffer. When ex starts, the previous command is shown enclosed in @@ -273,7 +278,9 @@ is pressed." (/= (minibuffer-prompt-end) (point-max))) (if (eq this-command 'evil-ex-delete-backward-char) (setq this-command 'ignore)) - (delete-minibuffer-contents)) + (if (eq this-original-command 'evil-paste-from-register) + (setq evil-paste-clear-minibuffer-first t) + (delete-minibuffer-contents))) (remove-hook 'pre-command-hook #'evil-ex-remove-default)) (put 'evil-ex-remove-default 'permanent-local-hook t) |
