首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Emacs多键盘快捷键

Emacs多键盘快捷键
EN

Stack Overflow用户
提问于 2013-03-30 08:53:30
回答 2查看 192关注 0票数 0

我正在尝试创建一个组合键绑定。

下面是一个例子:

代码语言:javascript
复制
(define-key my-minor-mode-map (kbd "x f") "\C-x\C-f")

(编辑:谢谢Stefan指出\C-x和\C-f之间的空格。)

然而,这会将我带到一个随机文件,describe-key表示:

代码语言:javascript
复制
Macro: C-x C-f
Keyboard macro.

所以我不太确定那是什么意思。似乎尝试将s绑定到C-s也不起作用(以及其他交互式命令,如C-r和M-x)。

这是可行的:

代码语言:javascript
复制
(define-key my-minor-mode-map (kbd "x f") "\M-f")

因此,基本上我希望能够运行C-x C-f (find-file),而不必输入'find-file‘作为函数本身。

换句话说,我不想这样:

代码语言:javascript
复制
(define-key my-minor-mode-map (kbd "x f") 'find-file)

我希望有人能帮我解决这个问题。我的emacs知识非常有限。

提前谢谢。

完整代码:

代码语言:javascript
复制
(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"

编辑:

如果我能做到这一点就更好了:

代码语言:javascript
复制
(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。这样我就不必写出所有可能的键组合了。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-03-30 21:11:49

我不完全确定你认为这里应该发生什么,但我怀疑你真正想要的是:

代码语言:javascript
复制
(define-key my-minor-mode-map (kbd "x f") (key-binding (kbd "C-x C-f")))

这和你说你不想用的代码是一样的:

代码语言:javascript
复制
(define-key my-minor-mode-map (kbd "x f") 'find-file)

除了它基于键绑定动态地获得函数之外。

附注:同样奇怪的是,您在相同的形式中混合使用了kbd和非kbd语法。

票数 2
EN

Stack Overflow用户

发布于 2013-03-30 10:34:56

"\C-x \C-f"有3个元素:C-xSPCC-f。您可能并不想让这个空间出现在那里。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15713683

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档