首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >对于Emacs,如何仅在某些操作中绑定键?

对于Emacs,如何仅在某些操作中绑定键?
EN

Stack Overflow用户
提问于 2013-04-14 12:19:17
回答 3查看 1.3K关注 0票数 0

具体地说,我想更改Emacs-Helm的键绑定。当我运行helm-find-files时,如果我在一个目录上点击C-z,你可以跳转到所选的目录。我想将此行为更改为Tab。我知道绑定到C-z的操作是helm-execute-persistanet-action。我可以通过执行(global-set-key (kbd "<tab>") 'helm-execute-persistanet-action)来实现这一点,但这将捕获所有其他tab操作。我只想让tab在我处于helm-find-files时运行helm-execute-persistanet-action

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-04-14 15:49:20

我想你要找的是定义键。表达式应如下所示:(define-key helm-mode-map tab 'a-command)

票数 2
EN

Stack Overflow用户

发布于 2013-04-16 21:22:11

您可以尝试绕过helm-find-files函数,在- helm -find-files中声明一个变量,然后使用define-key将tab键绑定到helm keymap中。如果设置了in-helm-find,那么您可以调用您想要的函数,否则使用keymap look来调用全局映射中的函数。

通知http://www.gnu.org/software/emacs/manual/html_node/elisp/Around_002dAdvice.html#Around_002dAdvice头盔快捷键映射https://github.com/emacs-helm/helm/blob/master/helm.el#L101快捷键映射Given an emacs command name, how would you find key-bindings ? (and vice versa)

票数 1
EN

Stack Overflow用户

发布于 2013-04-18 16:04:02

首先,找出您想要在其中更改键绑定的缓冲区中处于活动状态的主要模式。你可以用C-h v major-mode来做这件事,或者查看你的模式行。

然后,只需在模式钩子中放入一些代码,就可以使用local-set-key为该主要模式创建绑定。我不熟悉helm,但是假设主模式名为helm-mode,它有一个钩子helm-mode-hook,您想要绑定的命令名为helm-do-something

代码语言:javascript
复制
(add-hook 'helm-mode-hook
    (lambda () (local-set-key [tab] 'helm-do-something)))
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15995754

复制
相关文章

相似问题

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