Function: evil-show-marks
evil-show-marks is an interactive and byte-compiled function defined
in evil-commands.el.
Signature
(evil-show-marks MRKS)
Documentation
Show all marks.
If MRKS is non-nil it should be a string and only registers corresponding to the characters of this string are shown.
Key Bindings
Source Code
;; Defined in ~/.emacs.d/elpa/evil-20251108.138/evil-commands.el
(evil-define-command evil-show-marks (mrks)
"Show all marks.
If MRKS is non-nil it should be a string and only registers
corresponding to the characters of this string are shown."
:repeat nil
(interactive "<a>")
;; To get markers and positions, we can't rely on 'global-mark-ring'
;; provided by Emacs (although it will be much simpler and faster),
;; because 'global-mark-ring' does not store mark characters, but
;; only buffer name and position. Instead, 'evil-markers-alist' is
;; used; this is list maintained by Evil for each buffer.
(let ((all-markers
;; get global and local marks
(append (cl-remove-if (lambda (m)
(or (evil-global-marker-p (car m))
(not (markerp (cdr m)))))
evil-markers-alist)
(cl-remove-if (lambda (m)
(or (not (evil-global-marker-p (car m)))
(not (markerp (cdr m)))))
(default-value 'evil-markers-alist)))))
(when mrks
(setq mrks (string-to-list mrks))
(setq all-markers (cl-delete-if (lambda (m)
(not (member (car m) mrks)))
all-markers)))
;; map marks to list of 4-tuples (char row col file)
(setq all-markers
(mapcar (lambda (m)
(with-current-buffer (marker-buffer (cdr m))
(save-excursion
(goto-char (cdr m))
(list (car m)
(line-number-at-pos (point))
(current-column)
(buffer-name)))))
all-markers))
(evil-with-view-list
:name "evil-marks"
:mode-name "Evil Marks"
:format [("Mark" 8 nil)
("Line" 8 nil)
("Column" 8 nil)
("Buffer" 1000 nil)]
:entries (cl-loop for m in (sort all-markers (lambda (a b) (< (car a) (car b))))
collect `(nil [,(char-to-string (nth 0 m))
,(number-to-string (nth 1 m))
,(number-to-string (nth 2 m))
(,(nth 3 m))]))
:select-action #'evil--show-marks-select-action)))