Function: evil-get-register
evil-get-register is a byte-compiled function defined in
evil-common.el.
Signature
(evil-get-register REGISTER &optional NOERROR)
Documentation
Return contents of REGISTER.
Signal an error if empty, unless NOERROR is non-nil.
The following special registers are supported.
" the unnamed register
* the clipboard contents
+ the clipboard contents
<C-w> the word at point (ex mode only)
<C-a> the WORD at point (ex mode only)
<C-o> the symbol at point (ex mode only)
<C-f> the current file at point (ex mode only)
% the current file name (read only)
# the alternate file name (read only)
/ the last search pattern (read only)
: the last command line (read only)
. the last inserted text (read only)
- the last small (less than a line) delete
_ the black hole register
= the expression register (read only)
Source Code
;; Defined in ~/.emacs.d/elpa/evil-20251108.138/evil-common.el
(defun evil-get-register (register &optional noerror)
"Return contents of REGISTER.
Signal an error if empty, unless NOERROR is non-nil.
The following special registers are supported.
\" the unnamed register
* the clipboard contents
+ the clipboard contents
<C-w> the word at point (ex mode only)
<C-a> the WORD at point (ex mode only)
<C-o> the symbol at point (ex mode only)
<C-f> the current file at point (ex mode only)
% the current file name (read only)
# the alternate file name (read only)
/ the last search pattern (read only)
: the last command line (read only)
. the last inserted text (read only)
- the last small (less than a line) delete
_ the black hole register
= the expression register (read only)"
(unless (characterp register) (error "Invalid register `%S'" register))
(condition-case err
(or (cond
((eq register ?\")
(current-kill 0))
((<= ?1 register ?9)
(let ((reg (- register ?1)))
(and (< reg (length kill-ring))
(current-kill reg t))))
((memq register '(?* ?+))
(let ((what (if (eq register ?*) 'PRIMARY 'CLIPBOARD)))
(if (eval-when-compile (>= emacs-major-version 29))
(gui--selection-value-internal what)
;; The following code is based on `x-selection-value-internal'
;; (now `gui--selection-value-internal') circa Emacs 24. We're
;; unsure why exactly it's duplicated here, and it's possible
;; it needn't be for newer versions of Emacs.
(let ((request-type (or (bound-and-true-p x-select-request-type)
'(UTF8_STRING COMPOUND_TEXT STRING)))
text)
(unless (consp request-type)
(setq request-type (list request-type)))
(while (and request-type (not text))
(setq text (ignore-errors
(evil-get-selection what (pop request-type)))))
(when text
(remove-text-properties 0 (length text) '(foreign-selection nil) text))
text))))
((eq register ?\C-W)
(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)
(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)
(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)
(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)
(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
(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))
(user-error "No file name")))
((eq register ?/)
(defvar evil-search-module)
(or (car (cond
((eq evil-search-module 'evil-search) evil-ex-search-history)
(isearch-regexp regexp-search-ring)
(t search-ring)))
(user-error "No previous regular expression")))
((eq register ?:)
(or (car evil-ex-history) (user-error "No previous command line")))
((eq register ?.) evil-last-insertion)
((eq register ?-) evil-last-small-deletion)
((eq register ?=)
(let ((enable-recursive-minibuffers t))
(setq evil-last-=-register-input
(minibuffer-with-setup-hook
(lambda ()
(when evil-last-=-register-input
(add-hook 'pre-command-hook #'evil-ex-remove-default nil t)))
(read-from-minibuffer
"="
(and evil-last-=-register-input
(propertize evil-last-=-register-input 'face 'shadow))
evil-eval-map
nil
'evil-eval-history
evil-last-=-register-input
t)))
(evil--eval-expr evil-last-=-register-input)))
((eq register ?_) "") ; the black hole register
(t (setq register (downcase register))
(get-register register)))
(user-error "Register `%c' is empty" register))
(error (unless noerror (signal (car err) (cdr err))))))