有没有办法建议键映射或在键映射前缀之后但在键映射中的命令之前运行函数?
假设我有一个带有绑定的键映射,但这些绑定仅在激活hideshow
后才有用。在输入前缀之后,但在调用地图中的函数之前hs-minor-mode
如何运行?(hs-minor-mode)
我认为制作一个前缀命令并建议它可能会起作用,但这是一个错误(如下)。
例子:
(let ((map (define-prefix-command 'my-activate-fold 'my-fold-map)))
(define-key map "a" #'hs-hide-all)
(define-key map "s" #'hs-show-all)
(define-key map "l" #'hs-hide-level)
(global-set-key (kbd "<f6>") 'my-activate-fold))
;; error: wrong-type-argument commandp my-activate-fold
(define-advice my-activate-fold (:before (fn &rest r) "activate-hideshow")
(hs-minor-mode)
(apply fn r))