在emacs中避免重叠键绑定?

在emacs中避免重叠键绑定?,emacs,Emacs,我做了一些搜索,但不能完全找到我在寻找什么,所以我想我会问。这可能是因为没有使用正确的术语 我是emacs的新手,已经使用vim八年左右了,但我真的需要一个编辑器,我可以根据自己的意愿进行修改,所以我正在切换。现在在vim中有一个leader键,您可以定义它以避免与各种扩展重叠绑定。在emacs中,应该只为用户留出和弦,但各种模式并不遵循这一点。在emacs中是否有一种方法可以确保我的自定义绑定不会与vim leader键重叠?我问的原因是我想保持绑定正常。手册详细说明了约定: C-hig(el

我做了一些搜索,但不能完全找到我在寻找什么,所以我想我会问。这可能是因为没有使用正确的术语


我是emacs的新手,已经使用vim八年左右了,但我真的需要一个编辑器,我可以根据自己的意愿进行修改,所以我正在切换。现在在vim中有一个leader键,您可以定义它以避免与各种扩展重叠绑定。在emacs中,应该只为用户留出和弦,但各种模式并不遵循这一点。在emacs中是否有一种方法可以确保我的自定义绑定不会与vim leader键重叠?我问的原因是我想保持绑定正常。

手册详细说明了约定:

C-hig
(elisp)密钥绑定约定

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

  • C-C表示任何(未修改的)大写或小写字母:
    [A-Za-z]
  • 功能键F5、F6、F7、F8、F9(同样,不带修改器键)
我建议使用这些序列中最简单的一个作为前缀绑定,因为您可以使用任何键跟随它们,从而提供大量选项

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

当然,如果你为你的操作系统和键盘设置超级和超级修改键,你可能会得到比你能找到的更方便的序列。对于许多人来说,这是一个非常合理的选择,因为许多现代键盘上都有额外的修改键


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

我个人使用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 escape键。

有,其中一些确实让我吃惊


相关的部分是
C-C[a-zA-Z]
是为最终用户保留的。

如果库违反了密钥绑定约定,则应将其作为错误报告给库作者。非常感谢,因此我认为我可以安全地使用C-C和弦。希望我不会遇到冲突。作为补充说明,如果我想在caps lock上使用C,我可以只在emacs上这样做,还是需要在系统级映射它?如果您在linux上使用X windows,请查看“man xmodmap”,了解在手册页末尾附近重新映射控件/caps lock的低级方法。我不认为你可以在emacs中重新映射控件。好的,谢谢,我知道xmodmap只是想知道emacs是否可以自己做。再次感谢。