我做了一些搜索,但找不到我要找的东西,所以我想我会问。然而,这可能是由于没有使用正确的术语。
我是 emacs 的新手,已经使用 vim 八年左右,但我真的需要一个可以根据自己的意愿变形的编辑器,所以我正在切换。现在在 vim 中,您可以定义一个领导键以避免与各种扩展名重叠绑定。在 emacs 中,应该只为用户保留和弦,但各种模式不遵守这一点。在 emacs 中有没有一种方法可以确保我的自定义绑定不会像 vim 领导键那样重叠?我问的原因是我想保持我的绑定理智。
我做了一些搜索,但找不到我要找的东西,所以我想我会问。然而,这可能是由于没有使用正确的术语。
我是 emacs 的新手,已经使用 vim 八年左右,但我真的需要一个可以根据自己的意愿变形的编辑器,所以我正在切换。现在在 vim 中,您可以定义一个领导键以避免与各种扩展名重叠绑定。在 emacs 中,应该只为用户保留和弦,但各种模式不遵守这一点。在 emacs 中有没有一种方法可以确保我的自定义绑定不会像 vim 领导键那样重叠?我问的原因是我想保持我的绑定理智。
该手册详细介绍了约定:
C-hig (elisp) Key Binding Conventions
RET
为最终用户保留的序列是:
[A-Za-z]
我建议使用这些序列中最简单的作为前缀绑定,因为您可以使用任何键跟随它们,从而为您提供大量选项。
我喜欢的其他人的建议是,C-z如果您不常用suspend-frame
,请取消绑定,因为这会打开另一个方便的前缀。
当然,如果您为操作系统和键盘设置 Super 和 Hyper 修饰键,您可能会获得比您能找到的用途更方便的序列。对于许多使用许多现代键盘上的附加修饰键的人来说,这是一个非常合理的选择。
最后,key-chord库是一种非常流行的方法,它通过使用成对的(未修改的)键一起或快速连续(或一个键敲击两次)来创建新的方便且不冲突的绑定。根据我的经验,这非常有效,尽管您显然必须非常小心以避免可能自然发生的绑定序列。
我个人使用 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 转义键的。
有Emacs 键绑定约定,其中一些确实让我感到惊讶。
相关部分是为C-c [a-zA-Z]
最终<F[5-9]>
用户保留的。