【问题标题】:Finding all the functions in various modes assigned to a specific shortcut查找分配给特定快捷方式的各种模式下的所有功能
【发布时间】:2013-10-09 16:15:20
【问题描述】:

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

例如,如果我没记错股票 Emacs 简单地分配(或默认为)newline 用于 S-return,但在 org-mode 中 S-return 确实调用 org-table-copy-down

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

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

【问题讨论】:

    标签: emacs keyboard-shortcuts


    【解决方案1】:

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

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

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

    【讨论】:

      【解决方案2】:

      你可以使用

      M-x describe-unbound-keys

      找出空闲密钥。

      这是来自 cmets 中所说的第三方库。

      【讨论】:

      【解决方案3】:

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

      在我的设置中,我已将 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> 后跟一个字母作为您的命令。

      【讨论】:

      • +1 到两者,但那个很聪明...当然我已经在使用 Caps-lock 作为 CTRL,所以我必须找到其他东西。我会看看我能想出什么,但快速访问大量免费映射确实很方便:)
      • 只有我的两分钱 - 我在 ; 键上有 Mod4(这就像替代班次)。那是超过 30 个单键和弦的成本。此外,Mod4 结合了C-M-,因此那里还有 60 多个快捷方式。
      • @abo-abo 这是一个有趣的想法!我不确定我是否会使用 ; 作为修饰符,但可能作为前缀命令键。我要玩那个。干杯!
      • @CedricMartin C-spc 绑定到set-mark-command。我经常使用这个,所以可能不是一个好的转移。我也玩过 M-o,我绑定到 execute-extended-command,即 M-x。我从不使用绑定到 M-o 的命令,而且 M-x 对我来说很尴尬。
      • @abo-abo: 是的,这很棒但是...我已经将 mod4 专门保留给我的窗口管理器(因此我确信我的 WM 快捷方式不会与任何应用程序发生冲突)。所以我想我需要另一个修饰符; )
      猜你喜欢
      • 1970-01-01
      • 2017-02-10
      • 1970-01-01
      • 1970-01-01
      • 2017-10-19
      • 2012-05-20
      • 2014-11-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多