Emacs:如何选择良好的自定义键绑定?


10

我是一个Emacs的初学者,我想开始添加像常见任务的一些全球性的自定义键绑定replace-stringreplace-regex等不默认有他们。我想做出好的选择,并且看到一些问题:

  • 查看我所有的选项 -如何查看在我经常使用的所有模式中未绑定的全部键?

  • 兼容性/约定 -是否存在用于启动个人定制绑定的公共非官方绑定或公共“用户空间”键?

  • 其他问题 -我还应该考虑什么?

Answers:


9

尝试在SO上看一下这个问题:是否有保留用于自定义命令的emacs组合键?

关于查看可用资源,有一个unbound库(请参阅上述问题的第一个答案)。

一种约定(从我对该问题的回答中得到)是:

您可以重新定义任何内容,但要使用约定 C-c ll任何字母在哪里)。

作为用户,您可以重新定义任何密钥。但是通常最好坚持C-c 由以下字母组成的键序列(大写或小写)。这些密钥是“为用户保留的”,因此它们不会与任何经过适当设计的Emacs扩展冲突。功能键F5F9也保留给用户。如果重新定义其他键,则某些扩展名或主要模式可能会覆盖您的定义,而这些扩展或主要模式会重新定义相同的键。

请记住,键绑定在各种(主要和次要)模式中均不同,因此一个缓冲区中可用的内容不一定在另一个缓冲区中可用。并在尽可能本地化的级别上进行键绑定。例如,如果功能做了一个一行代码,不要让一个全球性的键绑定它,它在适当的键盘映射(定义c++-mode-mapruby-mode-map等等)。

关于您的特定任务,您是否注意到:

  • M-% 又名 query-replace
  • C-M-% 又名 query-replace-regexp

另外,当您搜索(C-sC-M-s(以及反向变体))时,您可以键入M-%(或C-M-%)以将搜索字符串作为替代直接输入query-replacequery-replace-regexp)...非常方便。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.