1

我想找到所有将功能分配给某个特定快捷方式的模式。

例如,如果我没记错股票 Emacs 只是newline为 S-return 分配(或默认为),但在 org-modeS-return中确实调用org-table-copy-down.

有没有一种简单的方法来确定哪些模式(主要和次要)将函数映射到特定的快捷方式?我可以找到一种主要模式的所有快捷方式,describe-mode但我想找到所有各种模式的快捷方式。我不介意它是否仅适用于所有当前加载的模式。

基本上我想找到“免费”或“相对很少重新映射”的快捷键,它们也很容易输入我不是在做“抄送”之后,因为首先抄送是一个非常复杂的键到达然后不得不再按另一个键对我来说一个键太多了。我在重新映射C-o, S-return, M-/和其他组合后更容易快速到达)。

4

3 回答 3

3

您可以使用 找到当前模式绑定C-h b。您可以使用accessible-keymaps. 您可以找到通过 variable 加载的所有功能features。但是您必须努力从目前已加载的所有文件中找到所有可能模式的所有可能绑定。

我建议您针对特定模式执行此操作,一次一个模式。检查给定模式的键绑定很容易。

如果您使用库`help-fns+.elC-h M-k中的命令( ) ,您甚至可以检查其他难以看到的键映射(例如 minibuffer 映射或 Isearch 映射)的绑定。当我想查看给定的键盘映射等中哪些键仍然可用时,我会使用它。describe-keymap

于 2013-10-09T16:32:23.387 回答
2

您可以使用

Mx 描述未绑定键

找出免费的钥匙。

如评论中所述,这是来自第三方库。

于 2013-10-11T03:13:45.383 回答
1

我不知道您的具体问题的答案,但我可以为您提供我的解决方案,以获得与其他模式不冲突的易于键入的键绑定。

在我的设置中,我已将 CAPS-LOCK 重新映射到 Alt。大多数人将它映射到 CTRL,但我可以相对容易地按下 CTRL,而 ALT 则很难。通过这种设置,最容易击中的组合键之一是 M 空间。所以我用它作为我自己的私钥映射:

(define-prefix-command 'ty-keymap)
(global-set-key "\M- " ty-keymap)
(define-key ty-keymap " " 'just-one-space) 
(define-key ty-keymap "j" 'join-next-line)
(define-key ty-keymap "s" 'mark-sexp)
(define-key ty-keymap "c" 'org-capture)
...

注意:默认情况下,M-space 绑定到just-one-space,这很有用。我已将其移至 M-space-space。在空格键上弹跳我的拇指两次只比按一次慢一点,所以这不是一个大的损失。

由于默认情况下 M-space 不是键盘映射,因此此设置允许我使用键盘上的所有键,而无需进一步修改。这是很多不动产,保证不会与其他包发生任何冲突 - 因为表现良好的包不会破坏基本的 Emacs 键绑定。

您可能更喜欢另一个组合键,但想法是一样的。你甚至可以使用一个功能键作为你的前缀命令,所以你可以在<f5>你的命令后面加上一个字母。

于 2013-10-09T16:30:00.480 回答