我是 Emacs 新手,我想开始添加一些全局自定义键绑定,用于执行默认情况下没有的常见任务,例如 、 等。我想做出正确的选择,但我发现了一些问题replace-string
:replace-regex
查看我的所有选项- 如何查看我经常使用的所有模式下未绑定的全部按键范围?
兼容性/约定- 是否存在通用的非官方绑定或通用的“用户空间”键来开始个人自定义绑定?
其他事宜- 我还应该考虑什么吗?
答案1
尝试看一下SO上的这个问题:是否有任何为自定义命令保留的 emacs 组合键?
关于查看可用资源,可以去unbound
图书馆(见第一个答案回答上述问题)。
一个惯例(摘自我对这个问题的回答) 是:
你可以重新定义任何事物,但惯例是使用 C-c l(l任意字母在哪里)。
作为用户,您可以重新定义任何键;但通常最好坚持C-c 使用由 和字母(大写或小写)组成的键序列。这些键是“为用户保留的”,因此它们不会与任何正确设计的 Emacs 扩展冲突。F5到 的功能键F9也是为用户保留的。如果您重新定义其他键,您的定义可能会被重新定义相同键的某些扩展或主要模式覆盖。
请记住,在各种(主要和次要)模式下,键绑定都是不同的,因此一个缓冲区中可用的功能不一定在另一个缓冲区中可用。并尽可能使您的键绑定处于最本地化的级别。例如,如果功能对一行代码执行某些操作,请不要为其创建全局键绑定,而是在适当的键映射中定义它(c++-mode-map
、ruby-mode-map
等)。
就您的具体任务而言,您是否注意到:
- M-%又名
query-replace
- C-M-%又名
query-replace-regexp
此外,当您搜索(C-s或C-M-s(和反向变体))时,您可以键入M-%(或C-M-%)直接输入query-replace
(query-replace-regexp
)并将搜索字符串作为要替换的内容……非常方便。