Hydra 禁用前缀参数的解释

Hydra disable interpretation of prefix argument

很长一段时间以来,我一直使用常见的 emacs hydra 来导航表达式,遵循

(defhydra hydra-word (:color red) "word"
  ("M-f" forward-word)
  ("M-b" backward-word)
  ("f" forward-word)
  ("b" backward-word)
  ;; etc..
  )

但我总是遇到一个烦人的问题:当我总是想简单地插入一个数字时,按下一个数字会被解释为前缀参数。我查看了 hydra wiki,但找不到禁用前缀解释的答案。我知道我可以为每个数字写一个 ("1" self-insert-command nil :exit t),但这很愚蠢,会导致创建一堆额外的函数。

如何在活动 hydra 期间禁用前缀 arg 的解释?而且,我想更一般地说,有没有办法暂时禁用前缀参数的解释。

查看代码后,我发现您可以覆盖像 universal-argument-map 这样的 hydras 底图。因此,要仅使用 C-u 开头的前缀来实现上述内容,但所有数字和 - 自插入,以下工作

(defhydra hydra-word (:color red :base-map (make-sparse-keymap)) "word"
  ("M-f" forward-word)
  ("M-b" backward-word)
  ("f" forward-word)
  ("b" backward-word)
  ;; etc..
  )