在emacs上取消设置常规密钥

在emacs上取消设置常规密钥,emacs,key-bindings,Emacs,Key Bindings,这有点尴尬,但最近我碰巧每隔一两周使用global set key动态绑定常规密钥。 e、 g. 今天我将q键绑定到quoted insert和toggle read only(不是故意的) 我尝试了global unset键,但现在按q键会显示q未定义消息(并且不写入任何内容)。 由于这不是最近第一次发生在我身上,而且我讨厌每次都会丢失emacs中打开的所有缓冲区,因此我正在寻找一种方法来取消设置字符键,而不丢失写入此字符或将字符重新绑定到自身的能力(global set key不允许)。尝试

这有点尴尬,但最近我碰巧每隔一两周使用
global set key
动态绑定常规密钥。
e、 g.
今天我将
q
键绑定到
quoted insert
toggle read only
(不是故意的)
我尝试了
global unset键
,但现在按
q
键会显示
q未定义
消息(并且不写入任何内容)。
由于这不是最近第一次发生在我身上,而且我讨厌每次都会丢失emacs中打开的所有缓冲区,因此我正在寻找一种方法来取消设置字符键,而不丢失写入此字符或将字符重新绑定到自身的能力(
global set key
不允许)。尝试绑定到
插入字符71
也失败

(global-set-key (kbd "q") #'self-insert-command)
这是所有字母数字键的默认绑定(当然可以在某些主要或次要模式下覆盖)

据我所知,没有办法将密钥重置为默认值。如果您想以可逆的方式使用键绑定,最好的方法可能是创建自己的次要模式,并且只将键绑定到它(请参阅)。然后,您可以轻松地关闭模式,或在其映射中取消定义键,以获得全局绑定


最后,我使用
保存访问过的文件
(在melpa中)来记住(大部分)缓冲区。还有更完整的解决方案,如
desktop
来保存和恢复状态。

非常好。从不知道
自插入命令
。谢谢