是否有自定义命令保留任何Emacs的组合键?(Are there any emacs key com

2019-06-26 05:16发布

如果我想创建一个自定义组合键来运行一个命令,是否有这个保留的任何键盘快捷方式? 我总是觉得它在其上的快捷方式决定重写,因为我不知道什么命令,我不应该重写并命令我可能在未来安装插件将尝试设置困难。

Answer 1:

我建议使用未绑定 。 它只是这种类型的场景制作。

一旦你拥有了它在您的Emacs的配置需要,键入以下将列出您的自定义可能未结合键:

M-x describe-unbound-keys

它要求的复杂程度(我一般只使用5)组合键取决于如何方便的(小于期权)或深奥(更多选项)一键绑定你有兴趣了。



Answer 2:

你可以重新定义什么,但惯例是使用Cc l (其中l是任何字母)。

作为用户,你可以重新定义任意键; 但通常最好坚持后跟一个字母(大写或小写),其由Cc的键序列。 这些密钥“预留给用户”,所以他们不会与任何适当的设计Emacs的扩展冲突。 功能键F5通过F9也保留了用户。 如果你重新定义其他一些重要的,你的定义可能是某些扩展或重新定义相同的密钥主要模式覆盖。

就个人而言,我试图找到在按键绑定一个洞溜我的自定义 - 而且通常有足以让我找到一些合理的。 此外,我通常让我的自定义键绑定本地未成年人模式,或主要模式的键盘映射,并避免使用global-set-key只要有可能。 这有助于保持孔的键盘布局。

例如,我推翻Crminibuffer-local-map在迷你更改为“已解决”的路径名的路径。 因此,尽管Cr是全球必然'isearch-reverse ,我不想念了小缓冲区内结合(和,这是可用,如果我开始在迷你向前搜索)。

另一个例子是,我写的东西 ,杀死所有其他缓冲区,其文件名当前缓冲区的文件名匹配。 Cx k'kill-buffer ,幸运的是Cx K是免费为我'kill-other-buffers-of-this-file-name ,这是我喜欢的,因为它是在原来的按键绑定一个微小的变化。 这是一个全局设置,但我想在全球可用的功能。



Answer 3:

还记得,所有的保留序列可以平凡作为前缀绑定,如果你想要将相关的任务一起,或只是想采取一个特定的易型抄送 <字母>序列的最大优势。

举例来说,我使用抄送 为一些想快速进入magit(及相关)功能的前缀。 例如:

(global-set-key (kbd "C-c m m") 'magit-status)
(global-set-key (kbd "C-c m l") 'magit-key-mode-popup-logging
(global-set-key (kbd "C-c m b") 'mo-git-blame-current)

当然, 抄送 的5M CH那么说明我的一切我有一个前缀下的绑定。



Answer 4:

不,你可以映射到你觉得,如果它是你配置的任何键的任何命令。

如果您正在创建您的模式或LIB,然后选择是不是已经采取键绑定。



文章来源: Are there any emacs key combinations reserved for custom commands?
标签: emacs elisp