Вот мое решение: поместите приведенный ниже код в свои .emacs или .spacemacs.
Вам нужно будет вручную указать имя маркера в верхнем регистре и имя файла в строке: evil-add-to-alist. Я также изменил evil-goto-mark, чтобы исправить ошибку, которая была напрямую введена set evil-markers-alist. Старый код предполагает, что когда маркер является минусом, буфер был закрыт. (когда буфер закрыт, он конвертирует маркер в минусы).
(setq alist (default-value 'evil-markers-alist))
(evil-add-to-alist 'alist ?E '("/path/to/yourfile" . 1))
(setq-default evil-markers-alist alist)
(evil-define-command evil-goto-mark (char &optional noerror)
"Go to the marker specified by CHAR."
:keep-visual t
:repeat nil
:type exclusive
(interactive (list (read-char)))
(let ((marker (evil-get-marker char)))
(cond
((markerp marker)
(switch-to-buffer (marker-buffer marker))
(goto-char (marker-position marker)))
((numberp marker)
(goto-char marker))
((consp marker)
(when (or (and (find-buffer-visiting (car marker))
(switch-to-buffer (find-buffer-visiting (car marker)) )
)
(and (y-or-n-p (format "Visit file %s again? "
(car marker)))
(find-file (car marker))))
(goto-char (cdr marker))))
((not noerror)
(user-error "Marker `%c' is not set%s" char
(if (evil-global-marker-p char) ""
" in this buffer"))))))
)