这是我的尝试:
(global-set-key [M-left] (key-binding (kbd "C-u C-@")))
在评估上述表达式后,调用alt
+ left
会向我显示消息<M-left> is undefined
。但是,以下内容有效:
(global-set-key [M-left] (key-binding (kbd "C-u")))
但这只是我命令的universal argument
部分。如何将这两个命令合并为一个Emacs键绑定?
答案 0 :(得分:2)
有两种方法可以做到这一点:交互式定义Keyboard Macro或编写函数:
(define-key global-map [M-left]
(lambda ()
(interactive)
(set-mark-command t)))
答案 1 :(得分:1)
sds提供了解决方案,但为了澄清,如果您评估(key-binding (kbd "C-u C-@"))
,您会看到它返回nil
- 因为这不是绑定的键序列。
实际上 Cu 运行命令universal-argument
,它负责从用户那里读取后续键序列( C - @ 在你的情况下)。