Hydra отключить интерпретацию аргумента префикса - PullRequest
0 голосов
/ 16 декабря 2018

В течение долгого времени я использовал общую гидру emacs для навигации по выражениям, как

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

Но у меня всегда есть досадная проблема: нажатие числа интерпретируется как префиксный аргумент, когдаЯ всегда имею в виду просто вставить номер.Я просмотрел гидру вики, но не смог найти ответ, чтобы отключить интерпретацию префиксов.Я знаю, что могу написать ("1" self-insert-command nil :exit t) для каждого числа, но это глупо и приводит к созданию множества дополнительных функций.

Как я могу отключить интерпретацию префикса arg во время активной гидры?И, я думаю, в более общем смысле, есть ли способ временно отключить интерпретацию префиксных аргументов.

1 Ответ

0 голосов
/ 16 декабря 2018

После просмотра кода, который я нашел, вы можете переопределить базовую карту гидр, которая выглядит как universal-argument-map.Таким образом, для реализации вышесказанного только с Cu , начинающим префикс, но со всеми цифрами и - самозапускающимися, работает следующее

(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..
  )
...