Answers:
如果您要讨论绑定键供自己使用,那么这就是规则:您可以绑定任何您喜欢的键。
如果要确保不绑定可能已经绑定的密钥,请使用C-c
字母后跟。所有此类密钥都是为用户保留的(请参阅下一个)。
如果您谈论的是在编写的代码(例如,库)中绑定键供他人使用,则此处描述规则(惯例):Elisp手册的节点键绑定约定。
与您的要求有关的主要规则是C-c
:
C-c LETTER
在Lisp程序中不要将其定义为键。由C-c
和组成的字母序列(大写或小写)供用户使用;它们是为用户保留的唯一序列,因此请不要阻止它们。
由C-c
后跟控制字符或数字组成的序列保留用于主要模式。
组成的序列C-c
,随后{
,}
,<
,>
,:
或;
也预留作主要模式。
C-c
为次要模式分配由后跟任何其他ASCII标点或符号字符组成的序列。绝对禁止在主要模式下使用它们,但是如果这样做,次要模式可能会不时地遮蔽主要模式绑定。
您会注意到,关于没有约定C-x
。但是,这是一个未声明的约定,或者只是一个很好的建议/做法:如果替换了一些现有的标准Emacs绑定(即,从Emacs获得的分布式绑定,而没有加载任何第三方库),则可能会混淆或惹恼您的代码的某些用户。
您可以通过以下方式在Emacs中获取该文档:
C-h i
,以打开文档浏览器的信息。m el TAB RET
,为米 ENU EL ISP(TAB
到完成),或者只需点击Elisp
您的鼠标链接。key bi TAB
然后n TAB RET
完成Key Binding Conventions
。或者,您可以i
在Elisp手册中使用它来完成索引条目:
C-h i m el TAB RET
。i key bi TAB
,完成并向key binding
您显示了两种可能性:key binding
和key binding, conventions for
。键入, TAB
完成到第二个,然后RET
接受它。C-c
用户命令绑定并字母化。这样,您可以(几乎)确定不会从已经安装的或将来某天要安装的主要模式中覆盖其他绑定。
C-c
在第三方库中不绑定+ LETTER。
@Drew的答案更加细致和详细。
这是一个完全正确的问题!按照惯例,C-x
emacs本身保留,而C-c
前缀用于用户定义的键绑定。
看看这个,特别是“保留键”一节。我很确定emacs手册中也说明了这些信息,但是我现在似乎找不到它。约定在emacs lisp手册的此部分中描述。
C-c
用户保留不带修饰符的字母(小写或大写)。以其他开头的许多键序列C-c
保留给主要模式使用-尤其是那些第二个按键也被控制键修改的模式。
M-x
是“执行扩展命令,这是您可以在Emacs中以交互方式完成的许多复杂内容的网关;它使您可以按名称运行任何Elisp函数”。并C-c
与C-x
没有这样的描述?
M-x
是“执行扩展命令,这是您可以在Emacs中以交互方式完成的许多复杂内容的网关;它使您可以按名称运行任何Elisp函数”。并C-c
与C-x
没有这样的描述?