aboutsummaryrefslogtreecommitdiff
path: root/evil-common.el
diff options
context:
space:
mode:
authorAxel Forsman <axelsfor@gmail.com>2023-08-06 17:25:28 +0200
committerAxel Forsman <axelsfor@gmail.com>2023-08-06 17:36:18 +0200
commit2b1e18552216a05014fa5ffe4cb54f595b1008a7 (patch)
tree24babc89580eae467c258bcb9b49c414fda9342a /evil-common.el
parent02004bce6884619e687654d333b75c90f8fc27d0 (diff)
Make Ex registers available in all minibuffers
Diffstat (limited to 'evil-common.el')
-rw-r--r--evil-common.el39
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))