怎么样吧 keyboard-quit映射到其他键

要把keyboard-quit映射到其他键,c-g另做他用

直接这样不就行了

(global-set-key (kbd "你想要的别的键") 'keyboard-quit)

另扯一句:除非有足够强的理由,谨慎考虑把C-g改掉,理由如下:

  1. 所有插件在写的时候都会考虑不影响C-g本身的功能,但如果你是其他快捷键,local-map可能会因为高优先级而覆盖掉它。这个时候你很可能不能M-x keyboard-quit,又没有其他办法调用keyboard-quit,就会很麻烦。
  2. 有相当多的插件在local-map里,对类似“退出”的功能直接写死C-g。如果你定义的C-g快捷键优先度更高,就无法“退出”,因此需要针对每一个这样的插件重新绑定其“退出”功能,可能有一定的工程量,也需要advice或者覆盖插件的函数。
  3. 由于Emacs的快捷键可以有类似C-x C-s这样多步快捷键的,你新绑定的快捷键有很高的概率成为某个其他快捷键的后缀。比如说选择用C-s来调用keyboard-quit,那在按了C-x之后,你如果想取消已经按的C-x,按了C-s,就会保存文件而不是取消。你需要为此修改所有可能冲突的快捷键,这个工程量可能会非常浩大。与之相对,所有插件的快捷键,都要么保证不会占用C-g这个后缀,要么保证这种快捷键对应某种“取消”。

综上所述,强烈建议不要动C-g

3 个赞

好的哈,谢谢你的建议