要把keyboard-quit映射到其他键,c-g另做他用
直接这样不就行了
(global-set-key (kbd "你想要的别的键") 'keyboard-quit)
另扯一句:除非有足够强的理由,谨慎考虑把C-g
改掉,理由如下:
- 所有插件在写的时候都会考虑不影响
C-g
本身的功能,但如果你是其他快捷键,local-map可能会因为高优先级而覆盖掉它。这个时候你很可能不能M-x keyboard-quit
,又没有其他办法调用keyboard-quit
,就会很麻烦。 - 有相当多的插件在local-map里,对类似“退出”的功能直接写死
C-g
。如果你定义的C-g
快捷键优先度更高,就无法“退出”,因此需要针对每一个这样的插件重新绑定其“退出”功能,可能有一定的工程量,也需要advice或者覆盖插件的函数。 - 由于Emacs的快捷键可以有类似
C-x C-s
这样多步快捷键的,你新绑定的快捷键有很高的概率成为某个其他快捷键的后缀。比如说选择用C-s
来调用keyboard-quit
,那在按了C-x
之后,你如果想取消已经按的C-x
,按了C-s
,就会保存文件而不是取消。你需要为此修改所有可能冲突的快捷键,这个工程量可能会非常浩大。与之相对,所有插件的快捷键,都要么保证不会占用C-g
这个后缀,要么保证这种快捷键对应某种“取消”。
综上所述,强烈建议不要动C-g
。
3 个赞
好的哈,谢谢你的建议