2

我做了一些搜索,但找不到我要找的东西,所以我想我会问。然而,这可能是由于没有使用正确的术语。

我是 emacs 的新手,已经使用 vim 八年左右,但我真的需要一个可以根据自己的意愿变形的编辑器,所以我正在切换。现在在 vim 中,您可以定义一个领导键以避免与各种扩展名重叠绑定。在 emacs 中,应该只为用户保留和弦,但各种模式不遵守这一点。在 emacs 中有没有一种方法可以确保我的自定义绑定不会像 vim 领导键那样重叠?我问的原因是我想保持我的绑定理智。

4

3 回答 3

5

该手册详细介绍了约定:

C-hig (elisp) Key Binding Conventions RET

为最终用户保留的序列是:

  • C-c<letter>对于任何(未修改的)大写或小写字母:[A-Za-z]
  • 功能键F5, F6, F7, F8, F9(同样,没有修饰键)

我建议使用这些序列中最简单的作为前缀绑定,因为您可以使用任何键跟随它们,从而为您提供大量选项。

我喜欢的其他人的建议是,C-z如果您不常用suspend-frame,请取消绑定,因为这会打开另一个方便的前缀。

当然,如果您为操作系统和键盘设置 Super 和 Hyper 修饰键,您可能会获得比您能找到的用途更方便的序列。对于许多使用许多现代键盘上的附加修饰键的人来说,这是一个非常合理的选择。

最后,key-chord库是一种非常流行的方法,它通过使用成对的(未修改的)键一起或快速连续(或一个键敲击两次)来创建新的方便且不冲突的绑定。根据我的经验,这非常有效,尽管您显然必须非常小心以避免可能自然发生的绑定序列。

于 2013-05-07T13:07:38.310 回答
1

我个人使用 C-' 作为我的个人键绑定映射的“主键”。您可以像这样创建前缀并将键绑定到它:

(global-set-key (kbd "C-'") ctl-quote-map)
(define-key ctl-quote-map (kbd "C-p") 'stumpwm-move-window-up)
(define-key ctl-quote-map (kbd "C-n") 'stumpwm-move-window-down)
(define-key ctl-quote-map (kbd "C-f") 'stumpwm-move-window-right)
(define-key ctl-quote-map (kbd "C-b") 'stumpwm-move-window-left)
(define-key ctl-quote-map (kbd "r") 'stumpwm-interactive-resize-window)

没有人跨过一些不明显的东西,如果你使用左控制,它是一个平衡的双小指动作。C-; 也不错,这是我用于 stumpwm 转义键的。

于 2013-05-07T13:10:03.273 回答
1

Emacs 键绑定约定,其中一些确实让我感到惊讶。

相关部分是为C-c [a-zA-Z]最终<F[5-9]>用户保留的。

于 2013-05-07T13:53:11.797 回答