查找分配给特定快捷方式的各种模式中的所有功能

时间:2013-10-09 16:15:21

标签: emacs keyboard-shortcuts

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

例如,如果我没有弄错,股票Emacs只是为S-return分配(或默认为)newline,但在org-mode S-return中调用org-table-copy-down。< / p>

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

基本上我想找到“免费”或“相对很少重新映射”的关键快捷键,也很容易输入我不是在做“Cc a”之后,因为一开始Cc是一个非常复杂的键,然后必须再击中另一个键是一个对我来说太多的键。我在重新映射C-o, S-return, M-/和其他组合后更多琐碎而快速到达)。

3 个答案:

答案 0 :(得分:3)

您可以使用C-h b找到当前模式绑定。 您可以使用accessible-keymaps获取当前可用的所有键盘映射。您可以找到通过变量features加载的所有功能。但是你必须努力从目前为止加载的所有文件中找到所有可能模式的所有可能绑定。

我建议你为特定模式,一次一种模式。检查给定模式的键绑定很容易。

如果您使用库{{3}中的命令C-h M-kdescribe-keymap),您甚至可以检查很难看到的键盘图(例如迷你缓冲区地图或Isearch地图)的绑定}。当我想查看给定键盘映射中仍有哪些键时,我会使用它。

答案 1 :(得分:2)

您可以使用

  

M-x describe-unbound-keys

找出免费钥匙。

这是来自第三方图书馆,如评论中所述。

答案 2 :(得分:1)

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

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

(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>后跟命令的字母。