Doom-emacs: [ERROR] El enlace "SPC + SPC" para + evil / easymotion da un error de prefijo

Creado en 14 ago. 2019  ·  3Comentarios  ·  Fuente: hlissner/doom-emacs

Describa el problema
Intentar mapear SPC SPC a +evil/easymotion falla con el error "SPC de clave sin prefijo". Otras funciones se asignan bien.

El código que falla se ve así:

(map! (:map doom-leader-map
        "SPC" #'+evil/easymotion))

Sin embargo, ambos funcionan bien:

  (map! (:map doom-leader-map
          "SPC" evilem-map))

  (map! (:map doom-leader-map
          "SPC" #'find-file))

Esto sugiere que hay algo en las partes internas de +evil/easymotion que no le gusta ser asignado a una clave de prefijo ... lo cual es extraño porque el mapeo predeterminado g s usa g como un prefijo, que también tiene otras claves.


Se ingresó el depurador - Error Lisp: (error "Secuencia de teclas SPC SPC comienza con la clave sin prefijo SPC")
define-key ((mapa de teclas (reasignar mapa de teclas (avy-ir-palabra-o-subpalabra-1. mal-avy-ir-palabra-o-subpalabra-1) (avy-ir-palabra-1-abajo. mal-avy -goto-word-1-below) (avy-goto-word-1-above. evil-avy-goto-word-1-above) (avy-goto-word-1. evil-avy-goto-word-1 ) (avy-goto-word-0. evil-avy-goto-word-0) (avy-goto-symbol-1-below. evil-avy-goto-symbol-1-below) (avy-goto-symbol- 1-above. Evil-avy-goto-symbol-1-above) (avy-goto-symbol-1. Evil-avy-goto-symbol-1) (avy-goto-subword-1. Evil-avy-goto- subword-1) (avy-goto-subword-0. evil-avy-goto-subword-0) (avy-goto-line-below. evil-avy-goto-line-below) (avy-goto-line-above . evil-avy-goto-line-above) (avy-goto-line. evil-avy-goto-line) (avy-goto-char-timer. evil-avy-goto-char-timer) (avy-goto- char-in-line. evil-avy-goto-char-in-line) (avy-goto-char-2-below. evil-avy-goto-char-2-below) (avy-goto-char-2- above. evil-avy-goto-char-2-above) (avy-goto-char-2. evil-avy-goto-char-2) (avy-goto-char. evil-avy-goto-char) (ace -modo-salto-palabra. mal-ace-salto-palabra-m oda) (ace-jump-line-mode. evil-ace-jump-line-mode) (ace-jump-char-mode. evil-ace-jump-char-mode)) (33. evil-shell-command) (58. evil-ex) (abajo-mouse -1. Región-de-arrastre-del-mal-del-ratón) (4.-desplazamiento-del-mal-abajo) (21. -Desplazamiento-del-mal-hacia arriba) (9.-salto-del-mal-hacia adelante) (26. Estado-de-mal-emacs) (abajo. evil-next-line) (up. evil-previous-line) (right. evil-forward-char) (left. evil-backward-char) (30. evil-buffer) (22. evil-visual-block) ( 86. evil-visual-line) (118. Evil-visual-char) (122 keymap (69. Vimish-fold-delete-all) (100. Vimish-fold-delete) (70. Evil-vimish-fold / create -line) (102. evil-vimish-fold / create) (107. + fold / anterior) (106. + fold / siguiente) (72. evil-scroll-left) (76. evil-scroll-right) (izquierda . "zh") (104. columna-pergamino-maligno-izquierda) (derecha. "zl") (108. columna-pergamino-maligno-derecha) (45. "zb ^") (98. -to-bottom) (46. "zz ^") (122. evil-scroll-line-to-center) (13. [122 return]) (return. "zt ^") (116. evil-scroll-line -to-top) (43. evil-scroll-bottom-line-to-top) (94. evil-scroll-top-line-to- abajo)) (92. mal-ejecutar-en-estado-emacs) (13. mal-ret) (25. mal-desplazarse-alinear) (15. mal-saltar-hacia atrás) (6. mal-desplazarse-página-abajo) (5 . evil-scroll-line-down) (2. evil-scroll-page-up) (29. evil-jump-to-tag) (67108918. evil-switch-to-windows-last-buffer) (23. evil-jump-to-tag) (67108918. evil-switch-to-windows-last-buffer) (23. -window-map) (45. evil-previous-line-first-non-blank) (95. evil-next-line-1-first-non-blank) (43. evil-next-line-first-non- en blanco) (94. mal-primero-no-en-blanco) (124. mal-goto-columna) (63. mal-ex-buscar-hacia atrás) (59. mal-repetir-encontrar-char) (47. mal-ex -search-forward) (44. evil-repeat-find-char-reverse) (42. evil-ex-search-word-forward) (91 keymap (100. git-gutter: previous-hunk) (116. hl- todo-anterior) (104. esquema-anterior-encabezado-visible) (101. error-anterior) (97. mal-hacia atrás-arg) (121. + mal: c-string-decode) (117. + mal: url -decodificar) (92. + mal / comentario-anterior) (42. + mal / comentario-anterior) (35. + mal / directiva-anterior-preproc) (77. + mal / final-anterior-del-método) ( 109. + Mal / comienzo-anterior-del-método ) (115. mal-prev-flyspell-error) (123. mal-anterior-abierto-llave) (40. mal-anterior-abierto-parén) (93. mal-sección-atrás-final-final) (91. mal-sección-atrás-sección- begin)) (93 keymap (100. git-gutter: next-hunk) (116. hl-todo-next) (104. outline-next-visible-header) (101. next-error) (97. evil-forward -arg) (121. + mal: codificar-cadena-c) (117. + mal: codificar-url) (92. + mal / siguiente-comentario) (42. + mal / siguiente-comentario) (35. + mal / next-preproc-directive) (77. + mal / siguiente-fin-del-método) (109. + mal / siguiente-comienzo-del-método) (115. mal-siguiente-error-de-hechizo-mosca) (125. mal -next-close-brace) (41. evil-next-close-parren) (91. evil-forward-section-end) (93. evil-forward-section-begin)) (41. evil-forward-section- comenzar) (40. mal-hacia-atrás-oración-comenzar) (39. mal-ir-a-marcar-línea) (96. mal-ir-a-marcar) (37. mal-saltar-elemento) (36. mal-final-de -line) (35. evil-ex-search-word-backward) (125. evil-forward-paragraph) (123. evil-backward-paragraph) (103 keymap (115 keymap (47. avy-goto-char-timer ) (32 cierres e (t) nil (interactivo) (let ((current-prefix-arg t)) (llamar-interactivamente (función avy-goto-char-timer)))) (83. evil-easymotion-snipe-backward) (115. evil-easymotion-snipe-forward) (65. evilem - función-movimiento-evil-backward-arg) (97. evilem - función-movimiento-evil-forward-arg ) (43. Evilem-motion-next-line-first-non-blank) (45. Evilem-motion-previous-line-first-non-blank) (35. Evilem-motion-search-word-backward) (42 .evilem-movimiento-búsqueda-palabra-adelante) (78. evilem-movimiento-búsqueda-anterior) (110. evilem-movimiento-búsqueda-siguiente) (41. evilem-movimiento-adelante-oración-comenzar) (40. evilem -movimiento-hacia atrás-frase-comenzar) (93 mapa de teclas (91. evilem-movimiento-avance-sección-fin) (93. evilem-movimiento-avance-sección-comenzar)) (91 mapa de teclas (93. evilem-movimiento-atrás -section-end) (91. evilem-motion-backward-section-begin)) (70. evilem-motion-find-char-backward) (102. evilem-motion-find-char) (84. evilem-motion- find-char-to-backward) (116. evilem-motion-find-char-to) (107. evilem-motion-previous-line) (106. evilem-motion-next-line) (103 keymap (107. evilem -motion-previous-visual-line) (106. evilem-motion-next -línea-visual) (69. evilem-motion-backward-WORD-end) (101. evilem-motion-backward-word-end)) (66. evilem-motion-backward-WORD-begin) (98. evilem-motion-backward-word-begin) (69. Evilem-motion-forward-WORD-end) (101. Evilem-motion-forward-word-end) (87. Evilem-motion-forward-WORD-begin) (119. Evilem-motion-forward-word- begin)) (78. evil-previous-match) (110. evil-next-match) (118. evil-visual-restore) (42. evil-ex-search-unbounded-word-forward) (35. evil- ex-búsqueda-ilimitada-palabra-hacia atrás) (29. mal-saltar-a-etiqueta) (36. mal-final-de-línea-visual) (109. mal-medio-de-línea-visual) (94. mal-primero-no-en-blanco-de-línea-visual) (95. mal-último-no-en-blanco) (48. mal-comienzo-de-línea-visual) (107. mal-anterior-línea-visual) ( 106. evil-next-visual-line) (103. Evil-goto-first-line) (69. Evil-backward-WORD-end) (101. Evil-backward-word-end) (100. Evil-goto- definición)) ...) "" nulo)
clave-definición-malvada (movimiento global "" nulo)(let ((prefix (this-command-keys))) (evil-define-key (quote motion) (quote global) prefix nil) (evilem-default-keybindings (key-description prefix)) (setq prefix-arg current -prefix-arg unread-command-events (mapcar (function (lambda (e) (cons te))) (vconcat (if evil-this-operator (progn (where-is-internal evil-this-operator evil-normal- estado-mapa t))) prefijo))))
+ malvado / movimiento fácil ()
funcall-interactivamente (+ evil / easymotion)
llamar de forma interactiva (+ evil / easymotion nil nil)
comando-ejecutar (+ evil / easymotion)

Información del sistema

  • SO: darwin (x86_64-apple-darwin14.5.0)
  • Shell: / bin / zsh
  • Emacs: 26.2 (12 de abril de 2019)
  • Doom: 2.0.9 (HEAD -> desarrollar, _upgrade / desarrollar f754d4ff 2019-07-23 18:23:17 +0200)
  • Pantalla gráfica: t (daemon: nil)
  • Características del sistema: NOTIFICAR ACL GNUTLS LIBXML2 ZLIB TOOLKIT_SCROLL_BARS NS MODULES THREADS
  • Detalles:
    elisp env bootstrapper: envvar-file elc count: 0 uname -a: Darwin 17.7.0 Darwin Kernel Version 17.7.0: Sun Jun 2 20:31:42 PDT 2019; root:xnu-4570.71.46~1/RELEASE_X86_64 x86_64 modules: (:completion company ivy :ui doom doom-dashboard doom-quit hl-todo modeline nav-flash ophints (popup +all +defaults) treemacs vc-gutter vi-tilde-fringe window-select workspaces :editor evil file-templates fold lispy multiple-cursors rotate-text snippets :emacs dired electric vc :term eshell :tools bibtex editorconfig eval flycheck flyspell (lookup +docsets) macos magit :lang data emacs-lisp my-ess markdown (org +ipython +pandoc) polymode python sh :config default) packages: (dtrt-indent (fill-function-arguments :recipe (fill-function-arguments :fetcher github :repo davidshepherd7/fill-function-arguments)) deadgrep pandoc-mode) exec-path: (~/.gem/bin ~/.zplug/repos/zplug/zplug/bin ~/.zplug/bin ~/.cargo/bin ~/.nix-profile/bin ~/.gem/bin /usr/local/bin /usr/bin /bin /usr/sbin /sbin /Library/TeX/texbin /opt/X11/bin ~/.config/nvim/bundle/fzf/bin ~/.local/bin /Applications/Emacs.app/Contents/MacOS/bin-x86_64-10_10 /Applications/Emacs.app/Contents/MacOS/libexec-x86_64-10_10 ~/.local/bin /Applications/Emacs.app/Contents/MacOS/libexec/)
bug elisp keybinds resolved

Comentario más útil

A partir de 27cabea, puede vincular +evil/easymotion cualquier lugar que desee. Encontré una manera de evitar las limitaciones técnicas mencionadas anteriormente.

Todos 3 comentarios

No puede vincular + evil / easymotion en ningún otro lugar que no sea en evil-motion-state-map , como está por defecto:

(map! :leader :m "gs" #'evil/easymotion)  ; note the :m 

No fue diseñado para vincularse a ningún otro lugar (y no puede serlo, no de manera confiable). Es un truco para cargar de forma perezosa evil-easymotion y luego vincular evilem-map a la secuencia de teclas que lo activó, sin comprometer la integración de qué tecla y sin tener que duplicar las combinaciones de teclas integradas en evilem-map. No existe un mecanismo confiable para determinar a través de qué mapa de teclas se invocó un comando, por lo que no existe una solución simple para este problema. Dado que, para empezar, están destinadas a ser teclas de movimiento "aumentadas", esto parecía un compromiso aceptable.

En una nota no relacionada, debe usar :leader lugar de :map doom-leader-map . Son equivalentes.

Asumiré que el problema se resolvió lo suficiente, pero márquelo como wontfix ya que el problema subyacente no se puede abordar. ¡Gracias por avisarme!

A partir de 27cabea, puede vincular +evil/easymotion cualquier lugar que desee. Encontré una manera de evitar las limitaciones técnicas mencionadas anteriormente.

¿Fue útil esta página
0 / 5 - 0 calificaciones