Não sei o que está causando esse problema ou como corrigir isso, mas posso oferecer uma solução alternativa para a maioria das finalidades.
Normalmente, as chaves inativas são processadas em uma camada de entrada muito baixa, nem mesmo visíveis no Lisp. Mas você pode fazer o processamento no Lisp.
Se você quiser que as chaves funcionem como chaves inativas:
Já existe um mecanismo limitado para chaves inativas no Lisp, projetado para conjuntos de caracteres de 8 bits em máquinas que não possuem nenhuma maneira de inserir caracteres não-ASCII. Se você digitar C-x 8
seguido de um acento e uma letra, a letra acentuada correspondente será inserida, graças ao iso-transl
library . Nós podemos copiar esse mecanismo. Coloque isso no seu .emacs
:
(define-key key-translation-map [dead-grave] (lookup-key key-translation-map "\C-x8'"))
(define-key key-translation-map [dead-acute] (lookup-key key-translation-map "\C-x8'"))
(define-key key-translation-map [dead-circumflex] (lookup-key key-translation-map "\C-x8^"))
(define-key key-translation-map [dead-diaeresis] (lookup-key key-translation-map "\C-x8\""))
(define-key key-translation-map [dead-tilde] (lookup-key key-translation-map "\C-x8~"))
(define-key isearch-mode-map [dead-grave] nil)
(define-key isearch-mode-map [dead-acute] nil)
(define-key isearch-mode-map [dead-circumflex] nil)
(define-key isearch-mode-map [dead-diaeresis] nil)
(define-key isearch-mode-map [dead-tilde] nil)
O mapa key-translation-map
reescreve sequências de teclas à medida que são inseridas, então isso fará dead ' a equivalente a à para a maioria das finalidades. Definir explicitamente as entradas em isearch-mode-map
a nil
é necessário porque, do contrário, pressionar uma tecla morta sairia da pesquisa antes que a tradução pudesse ser acionada.
Se você quiser que os caracteres de acentuação sejam inseridos imediatamente
(define-key key-translation-map [dead-grave] "'")
(define-key key-translation-map [dead-acute] "'")
(define-key key-translation-map [dead-circumflex] "^")
(define-key key-translation-map [dead-diaeresis] "\"")
(define-key key-translation-map [dead-tilde] "~")