Doom-emacs: [バグ] + 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エラー:(エラー「キーシーケンスSPCSPCが非プレフィックスキーSPCで開始します」)
define-key((keymap(remap keymap(avy-goto-word-or-subword-1。evil-avy-goto-word-or-subword-1)(avy-goto-word-1-below。evil-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-上記。evil-avy-goto-char-2-above)(avy-goto-char-2。evil-avy-goto-char-2)(avy-goto-char。evil-avy-goto-char)(ace -ジャンプワードモード。evil-ace-jump-word-m ode)(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)(down-mouse -1 .evil-mouse-drag-region)(4 .evil-scroll-down)(21 .evil-scroll-up)(9 .evil-jump-forward)(26 .evil-emacs-state)(down。 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 -行)(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 -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- 下))(92。 evil-execute-in-emacs-state)(13 .evil-ret)(25 .evil-scroll-line-up)(15 .evil-jump-backward)(6 .evil-scroll-page-down)(5 .evil-scroll-line-down)(2 .evil-scroll-page-up)(29 .evil-jump-to-tag)(67108918 .evil-switch-to-windows-last-buffer)(23 .evil -window-map)(45 .evil-previous-line-first-non-blank)(95 .evil-next-line-1-first-non-blank)(43 .evil-next-line-first-non-空白)(94 .evil-first-non-blank)(124 .evil-goto-column)(63 .evil-ex-search-backward)(59 .evil-repeat-find-char)(47 .evil-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-previous)(104 .outline-previous-visible-heading)(101 .previous-error)(97 .evil-backward-arg)(121。+ evil:c-string-decode)(117。+ evil:url -デコード)(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- begin))(93 keymap(100 .git-gutter:next-hunk)(116 .hl-todo-next)(104 .outline-next-visible-heading)(101 .next-error)(97 .evil-forward -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-close-brace)(41 .evil-next-close-paren)(91 .evil-forward-section-end)(93 .evil-forward-section-begin))(41 .evil-forward-sentence- begin)(40 .evil-backward-sentence-begin)(39 .evil-goto-mark-line)(96 .evil-goto-mark)(37 .evil-jump-item)(36 .evil-end-of -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クローサー e(t)nil(interactive)(let((current-prefix-arg t))(call-interactively(function avy-goto-char-timer))))(83。 evil-easymotion-snipe-backward)(115 .evil-easymotion-snipe-forward)(65 .evilem--motion-function-evil-backward-arg)(97 .evilem--motion-function-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 -motion-backward-sentence-begin)(93キーマップ(91。evilem-motion-forward-section-end)(93。evilem-motion-forward-section-begin))(91キーマップ(93。evilem-motion-backward -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 -ビジュアルライン)(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 .evil-previous-match)(110 .evil-next-match)(118 .evil-visual-restore)(42 .evil-ex-search-unbounded-word-forward)(35 .evil- ex-search-unbounded-word-backward)(29 .evil-jump-to-tag)(36 .evil-end-of-visual-line)(109 .evil-middle-of-visual-line)(94。 evil-first-non-blank-of-visual-line)(95 .evil-last-non-blank)(48 .evil-beginning-of-visual-line)(107 .evil-previous-visual-line)( 106 .evil-next-visual-line)(103 .evil-goto-first-line)(69 .evil-backward-WORD-end)(101 .evil-backward-word-end)(100 .evil-goto-定義))...) "" nil)
evil-define-key (motion global "" 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()
funcall-インタラクティブに(+ evil / easymotion)
call-interactively(+ evil / easymotion nil nil)
コマンド実行(+ evil / easymotion)

システムインフォメーション

  • OS:darwin(x86_64-apple-darwin14.5.0)
  • シェル:/ bin / zsh
  • Emacs:26.2(2019年4月12日)
  • 運命:2.0.9(HEAD->開発、_upgrade / development f754d4ff 2019-07-23 18:23:17 +0200)
  • グラフィック表示:t(デーモン:nil)
  • システム機能:NOTIFY ACL GNUTLS LIBXML2 ZLIB TOOLKIT_SCROLL_BARS NS MODULES THREADS
  • 詳細:
    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 / easymotionは、デフォルトでevil-motion-state-map以外の場所にバインドすることはできません。

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

それは他のどこかにバインドされるように設計されていませんでした(そして、確実にバインドすることはできません)。 これは、evil-easymotionを遅延ロードしてから、evilem-mapをトリガーしたキーシーケンスにバインドするためのトリックです。どのキーの統合を損なうことなく、evilem-mapに組み込まれているキーバインドを複製する必要もありません。 コマンドが呼び出されたキーマップを決定するための信頼できるメカニズムがないため、この問題に対する簡単な解決策はありません。 これらはそもそも「拡張」モーションキーであることが意図されているため、これは許容できる妥協案のように思われました。

関係のないメモでは、 :leader代わりに:map doom-leader-map :leaderを使用する必要があります。 それらは同等です。

問題は十分に解決されたと思いますが、根本的な問題に対処できないため、 wontfixとしてマークします。 私の注意を引いてくれてありがとう!

27cabeaの時点で、 +evil/easymotionを好きな場所にバインドできます。 前述の技術的な制限を回避する方法を見つけました。

このページは役に立ちましたか?
0 / 5 - 0 評価