diff options
| author | Axel Forsman <axelsfor@gmail.com> | 2023-08-06 17:25:28 +0200 |
|---|---|---|
| committer | Axel Forsman <axelsfor@gmail.com> | 2023-08-06 17:36:18 +0200 |
| commit | 2b1e18552216a05014fa5ffe4cb54f595b1008a7 (patch) | |
| tree | 24babc89580eae467c258bcb9b49c414fda9342a /evil-common.el | |
| parent | 02004bce6884619e687654d333b75c90f8fc27d0 (diff) | |
Make Ex registers available in all minibuffers
Diffstat (limited to 'evil-common.el')
| -rw-r--r-- | evil-common.el | 39 |
1 files changed, 23 insertions, 16 deletions
diff --git a/evil-common.el b/evil-common.el index 54ca731..db8c34f 100644 --- a/evil-common.el +++ b/evil-common.el @@ -1967,32 +1967,39 @@ The following special registers are supported. (remove-text-properties 0 (length text) '(foreign-selection nil) text)) text)))) ((eq register ?\C-W) - (unless (evil-ex-p) - (user-error "Register <C-w> is only available in Ex state")) - (with-current-buffer evil-ex-original-buffer + (with-current-buffer + (or evil-ex-original-buffer + (let ((w (minibuffer-selected-window))) (and w (window-buffer w))) + (user-error "Register <C-w> is only available in Ex state")) (thing-at-point 'evil-word))) ((eq register ?\C-A) - (unless (evil-ex-p) - (user-error "Register <C-a> is only available in Ex state")) - (with-current-buffer evil-ex-original-buffer + (with-current-buffer + (or evil-ex-original-buffer + (let ((w (minibuffer-selected-window))) (and w (window-buffer w))) + (user-error "Register <C-a> is only available in Ex state")) (thing-at-point 'evil-WORD))) ((eq register ?\C-O) - (unless (evil-ex-p) - (user-error "Register <C-o> is only available in Ex state")) - (with-current-buffer evil-ex-original-buffer + (with-current-buffer + (or evil-ex-original-buffer + (let ((w (minibuffer-selected-window))) (and w (window-buffer w))) + (user-error "Register <C-o> is only available in Ex state")) (thing-at-point 'evil-symbol))) ((eq register ?\C-F) - (unless (evil-ex-p) - (user-error "Register <C-f> is only available in Ex state")) - (with-current-buffer evil-ex-original-buffer + (with-current-buffer + (or evil-ex-original-buffer + (let ((w (minibuffer-selected-window))) (and w (window-buffer w))) + (user-error "Register <C-f> is only available in Ex state")) (thing-at-point 'filename))) ((eq register ?\C-L) - (unless (evil-ex-p) - (user-error "Register <C-l> is only available in Ex state")) - (with-current-buffer evil-ex-original-buffer + (with-current-buffer + (or evil-ex-original-buffer + (let ((w (minibuffer-selected-window))) (and w (window-buffer w))) + (user-error "Register <C-l> is only available in Ex state")) (replace-regexp-in-string "\n\\'" "" (thing-at-point 'line)))) ((eq register ?%) - (or (buffer-file-name evil-ex-original-buffer) + (or (buffer-file-name + (or evil-ex-original-buffer + (let ((w (minibuffer-selected-window))) (and w (window-buffer w))))) (user-error "No file name"))) ((= register ?#) (or (with-current-buffer (other-buffer) (buffer-file-name)) |
