假设有这么个keymap
(define-prefix-command 'test-map)
(global-set-key (kbd "M-s") 'test-map)
如何定义 C-u M-s 的行为呢?
假设有这么个keymap
(define-prefix-command 'test-map)
(global-set-key (kbd "M-s") 'test-map)
如何定义 C-u M-s 的行为呢?
这个是通过调用 interactive 实现的,而不是简单的按键绑定可以实现的。
这是我写的一个范例。
elisp info => Command Loop => Defining Command and Interactive Calls nodes
谢谢2位的帮助。这是解决方法,理论上可以
(global-set-key (kbd "M-s") #'(lambda nil (interactive) (if current-prefix-arg (message "123") call-test-keymap)))
;; 然后从call-test-keymap 是一个内部调用 test-map 的函数
;; http://stackoverflow.com/questions/24914202/elisp-call-keymap-from-code
但是我觉得这样有点丑。最后这样更方便一点
(define-key universal-argument-map (kbd "M-s") #'(lambda nil (interactive) (message "1234")))