Pregunta:
Estoy tratando de hacer que la función Evil sea evil-jump-to-tag
, C-] se comporte como el enlace M- de Emacs . .
El comportamiento normal está bien para buscar archivos de etiquetas, pero quiero que funcione también para slime-edit-definition
, Elisps ' elisp-slime-nav-find-elisp-thing-at-point
, Clojures cider-jump-to-var
, etc …
Estos modos principales y muchos más han vinculado un equivalente de salto a definición a la combinación de teclas M-. .
Para obtener el mismo comportamiento para el modo Evil, ¿necesito vincular una combinación de teclas localmente para cada uno de estos modos, o es posible tomar una combinación de teclas y decirle a Emacs que siempre que se presione esta tecla, use la función vinculada a esa tecla? en modo Emacs?
Respuesta:
Lo tengo funcionando ahora, gracias a tus respuestas:
(defun my-jump-to-tag ()
(interactive)
(evil-emacs-state)
(call-interactively (key-binding (kbd "M-.")))
(evil-change-to-previous-state (other-buffer))
(evil-change-to-previous-state (current-buffer)))
(define-key evil-normal-state-map (kbd "C-]") 'my-jump-to-tag)
Esto establecerá evil-state en "Emacs", llamará a la función vinculada a M-. Y volverá al estado anterior de emacs en el otro búfer. Lo probé con elisp, slime and go y les está funcionando a todos.