Doom-emacs: [BUG] + evil / easymotion的“ SPC + SPC”绑定给出前缀错误

创建于 2019-08-14  ·  3评论  ·  资料来源: hlissner/doom-emacs

描述问题
尝试将SPC SPC映射到+evil/easymotion失败,并出现“非前缀密钥SPC”错误。 其他功能映射就好了。

失败的代码如下所示:

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

但是,这两种方法都很好:

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

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

这表明+evil/easymotion的内部结构有些不喜欢映射到前缀键...这很奇怪,因为默认的g s映射使用g作为前缀,也具有其他键。


输入调试器-Lisp错误:(错误“键序列SPC SPC以非前缀键SPC开头”)
define-key((keymap(remap keymap(avy-goto-word-or-subword-1。evil-avy-goto-word-sub-word-1)(avy-goto-word-1-below.evil-avy -goto-word-1-下方)(avy-goto-word-1-上方。邪恶-avy-goto-word-1-上方)(avy-goto-word-1。邪恶-avy-goto-word-1 )(avy-goto-word-0。邪恶-avy-goto-word-0)(avy-goto-symbol-1-下方。evil-avy-goto-symbol-1-下方)(avy-goto-symbol- 1上方。-邪恶-avy-symbol-1以上(avy-goto-symbol-1。邪恶-avy-goto-symbol-1)(avy-goto-subword-1。邪恶-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 。上面的(avy-goto-line-邪恶)(avy-goto-line。(邪恶-avy-goto-line)(avy-goto-char-timer。 char-in-line。邪恶-avy-goto-char-in-line)(下面是avy-goto-char-2-)。evil-avy-goto-char-2-以下)(avy-goto-char-2-上面。(邪恶-avy-char-2以上)((邪恶-avto-char-2。邪恶-avy-goto-char-2)(关于[avy-goto-char。邪恶-avy-goto-char)(ace跳字模式.. ace-jump-word-m 颂歌)(ace-jump-line-mode。 邪恶王牌跳线模式(ace-jump-char-mode。邪恶王牌jump-char-mode))(33.邪恶壳命令)(58. evil-ex)(下鼠标-1。邪恶鼠标拖动区域(4.邪恶滚动向下)(21.邪恶滚动向上)(9.邪恶跳跃向前)(26.邪恶滚动状态)(down。邪恶的下一行)(向上。邪恶的上一行)(右。邪恶的向前字符)(左。邪恶的向后字符)(30。邪恶的缓冲区)(22。邪恶的视觉块)( 86.邪恶视觉线(118. evil-visual-char)(122键映射(69. vimish-fold-delete-all)(100. vimish-fold-delete)(70. evil-vimish-fold / create行)(102. evil-vimish-fold / create)(107. + fold / previous)(106. + fold / next)(72. evil-scroll-left)(76. evil-scroll-right)(左。“ zh”)(104。evil-scroll-column-left)(right。“ zl”)(108。evil-scroll-column-right)(45。“ zb ^”)(98。evil-scroll-line到底部)(46。“ zz ^”)(122。邪恶滚动线到中心)(13。[122 return])(return。“ zt ^”)(116。邪恶滚动线到顶部)(43。邪恶滚动底部线到顶部)(94。邪恶滚动顶部线到顶部底部))(92。 邪恶执行状态(13.邪恶撤退)(25.邪恶滚动列表)(15.邪恶跳转后退)(6.邪恶滚动向下页面)(5 .evil-scroll-line-down)(2.evil-scroll-page-up)(29.evil-jump-to-tag)(67108918.evil-switch-to-windows-last-buffer)(23.evil-scroll-line-down) -window-map)(45.邪恶的前一行第一非空白)(95.邪恶的下一行-1第一非空白)(43.邪恶的下一行第一非空白)空白)(94.邪恶第一非空白)(124.邪恶转到列)(63.邪恶向前搜索)(59.邪恶重复查找字符)(47.邪恶之前-搜索-向前(44。邪恶重复查找字符反转)(42.邪恶-向前搜索单词正向)(91键映射(100。git-gutter:previous-hunk)(116。hl- todo-previous)(104.大纲-previous-visible-heading)(101.上一个错误)(97. evil-backward-arg)(121. + evil:c-string-decode)(117. + evil:url -decode)(92。+ evil / previous-comment)(42。+ evil / previous-comment)(35。+ evil / previous-preproc-directive)(77. + evil / previous-end-of-method)( 109 ++ evil / previous-beginning-of-method )(115。 Evil-prev-flyspell-error)(123. Evil-Previous-Open-Brace)(40. Evil-Previous-Open-Paren)(93. Evil-backward-section-End)(91. Evil-backward-section-开始))(93键映射(100. git-gutter:next-hunk)(116. hl-todo-next)(104. outline-next-visible-heading)(101.下一个错误)(97.邪恶向前-arg)(121。+ evil:c-string-encode)(117。+ evil:url-encode)(92。+ evil / next-comment)(42。+ evil / next-comment)(35。+ evil / next-preproc-directive)(77. + evil / next-end-of-method)(109. + evil / next-beginning-of-method)(115.evil-next-flyspell-error)(125.evil-next-flyspell-error)(125。 -next-close-brace)(41.evil-next-close-paren)(91.evil-forward-section-end)(93.evil-forward-section-begin))(41.evil-forward-sentence- begin)(40.邪恶向后的句首)(39. evil-goto-mark-line)(96. evil-goto-mark-line)(37. evil-jump-item)(36. evil-end-of行)(35.邪恶搜索词向后)(125.邪恶向前段落)(123.邪恶向后段落)(103键盘映射(115键盘映射(47. avy-goto-char-timer )(32克洛苏尔 e(t)nil(interactive)(let((current-prefix-arg t))(interactively call(function avy-goto-char-timer)))(83。 (115.邪恶-easymotion-snipe-forward)(65.邪恶-easymotion-snipe-forward)(65.evilem-运动功能-evil-backward-arg)(97.evilem-运动功能-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-motion-search-word-forward)(78.evilem-motion-search-previous)(110.evilem-motion-search-next)(41.evilem-motion-forward-sentence-begin)(40.evilem-forward-sentence-begin) -向后移动句子开头(93 keymap(91. evilem-motion-forward-section-end)(93. evilem-motion-forward-section-begin))(91 keymap(93. evilem-motion-backward-beward) -section-end)(91. evilem-motion-backward-section-begin))(70. evilem-motion-find-char-backward)(102. evilem-motion-find-char)(84. evilem-motion--向后查找字符(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 -visual-line)(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-开始))(78.邪恶的前一场比赛)(110.邪恶的下一场比赛)(118.邪恶的视觉恢复)(42.邪恶的搜索无边界词向前)(35.邪恶的-向前比赛)向后搜索无界词(29.跳转到标签的邪恶行为)(36.视觉行的邪恶末端)(109.视觉行的中间邪恶)(94。邪恶的第一个非空白的视线)(95。邪恶的最后一个非空白)(48。邪恶的视线开始)(107。邪恶的前视线)( 106.evil-next-visual-line)(103.evil-goto-第一行)(69.evil-backward-word-end)(101.evil-backward-word-end)(100.evil-goto-end-)定义))...)“” nil)
邪恶定义键(全局运动“” nil)(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-状态图t)))前缀))))
+ evil / easymotion()
互动互动(+ evil / easymotion)
交互式呼叫(+ evil / easymotion无)
命令执行(+ evil / easymotion)

系统信息

  • 作业系统:darwin(x86_64-apple-darwin14.5.0)
  • 外壳:/ bin / zsh
  • Emacs:26.2(2019年4月12日)
  • 毁灭战士:2.0.9(HEAD->开发,_upgrade / develop f754d4ff 2019-07-23 18:23:17 +0200)
  • 图形显示:t(守护程序:nil)
  • 系统功能:NOTIFY ACL GNUTLS LIBXML2 ZLIB TOOLKIT_SCROLL_BARS NS模块线程
  • 细节:
    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

最有用的评论

从27cabea开始,您可以在任意位置绑定+evil/easymotion 。 我已经找到一种方法来解决前面提到的技术限制。

所有3条评论

您无法在evil-motion-state-map以外的任何其他位置绑定+ evil / easymotion,因为默认情况下:

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

它的设计目的不是要绑定到其他任何地方(并且不能-不可靠地)。 延迟加载Evil-easymotion,然后将Evilem-map绑定到触发它的键序列上,而又不损害哪个键集成,也不必复制Evilem-map上的内置键绑定,这是一个技巧。 没有确定通过哪个按键映射调用命令的可靠机制,因此没有简单的解决方案。 由于这些都是从“增强”运动键开始的,因此这似乎是一个可以接受的折衷方案。

与此无关的是,您应该使用:leader而不是:map doom-leader-map 。 它们是等效的。

我假设问题已得到充分解决,但由于无法解决根本问题,因此将其标记为wontfix 。 感谢您引起我的注意!

从27cabea开始,您可以在任意位置绑定+evil/easymotion 。 我已经找到一种方法来解决前面提到的技术限制。

此页面是否有帮助?
0 / 5 - 0 等级