避免在emacs中重叠键绑定?

时间:2013-05-07 12:03:20

标签: emacs

我已经做了一些搜索并且找不到我要找的东西所以我想我会问。这可能是因为没有使用正确的术语。

我是emacs的新手,使用vim八年左右,但我真的需要一个编辑器,我可以改变自己的意愿,所以我正在转换。现在在vim中,您可以定义一个领导键,以避免与各种扩展重叠绑定。在emacs中,应该只为用户留出和弦,但各种模式都不符合这一要求。在emacs中是否有一种方法可以确保我的自定义绑定不会与vim领导键重叠?我问的原因是我想保持我的约束力。

3 个答案:

答案 0 :(得分:5)

本手册详细介绍了这些惯例:

C-h i g (elisp) Key Binding Conventions RET

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

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

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

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

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

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

答案 1 :(得分: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)

Nobbody跨过一些模糊不清的东西,如果你使用左控制,它是一个平衡的双小指运动。 C-;也很好,这是我用于stumpwm转义键。

答案 2 :(得分:1)

Emacs keybinding conventions,其中一些让我感到惊讶。

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