Devido ao fato de que Control + G precisa interromper o Emacs enquanto faz outras coisas (e não lê as entradas normais), é codificado no núcleo do Emacs e pode pode ser rebound usando métodos normais. Existe uma função set-quit-char
, mas funciona apenas com caracteres ASCII.
(set-quit-char QUIT)
Specify character used for quitting.
QUIT must be an ASCII character.
This function only has an effect on the controlling tty of the Emacs
process.
Em suma, você teria que corrigir e recompilar o Emacs para fazer o que quiser.
No entanto, é possível obter alguns do que você deseja. Se você fizer
(define-key local-function-key-map [cancel] [7]) ; 7 is C-g
então cancel
deve funcionar como C-g
, mas somente quando o Emacs estiver lendo a entrada normal. Ele não interromperá uma função Elisp de longa duração como C-g
. Mas ele cancelará um comando C-x C-f
ou similar que está lendo a entrada do minibuffer.