我正在尝试创建一个组合键绑定。
下面是一个例子:
(define-key my-minor-mode-map (kbd "x f") "\C-x\C-f")(编辑:谢谢Stefan指出\C-x和\C-f之间的空格。)
然而,这会将我带到一个随机文件,describe-key表示:
Macro: C-x C-f
Keyboard macro.所以我不太确定那是什么意思。似乎尝试将s绑定到C-s也不起作用(以及其他交互式命令,如C-r和M-x)。
这是可行的:
(define-key my-minor-mode-map (kbd "x f") "\M-f")因此,基本上我希望能够运行C-x C-f (find-file),而不必输入'find-file‘作为函数本身。
换句话说,我不想这样:
(define-key my-minor-mode-map (kbd "x f") 'find-file)我希望有人能帮我解决这个问题。我的emacs知识非常有限。
提前谢谢。
完整代码:
(defvar my-minor-mode-map (make-keymap) "my-minor-mode keymap")
(define-key my-minor-mode-map (kbd "x f") "\C-x\C-f")
(define-minor-mode my-minor-mode
"My minor-mode"
t "My minor mode" 'my-minor-mode-map)
(defun my-minibuffer-setup-hook ()
(my-minor-mode 0))
"My minor-mode"编辑:
如果我能做到这一点就更好了:
(define-key my-minor-mode-map (kbd "x") "\C-x")
(define-key my-minor-mode-map (kbd "f") "\C-f")如果我输入"x f“,它会执行"\C-x C-f”,也就是find file。这样我就不必写出所有可能的键组合了。
发布于 2013-03-30 21:11:49
我不完全确定你认为这里应该发生什么,但我怀疑你真正想要的是:
(define-key my-minor-mode-map (kbd "x f") (key-binding (kbd "C-x C-f")))这和你说你不想用的代码是一样的:
(define-key my-minor-mode-map (kbd "x f") 'find-file)除了它基于键绑定动态地获得函数之外。
附注:同样奇怪的是,您在相同的形式中混合使用了kbd和非kbd语法。
发布于 2013-03-30 10:34:56
"\C-x \C-f"有3个元素:C-x、SPC和C-f。您可能并不想让这个空间出现在那里。
https://stackoverflow.com/questions/15713683
复制相似问题