Existe alguma maneira de vincular C-[
a algo e não ter todas as M-
vinculações (Meta) desarrumadas?
Não é a primeira vez que essa pergunta surge. Infelizmente, a única solução oferecida no encadeamento anterior é a) específica para Linux, b) requer uma ferramenta externa (novamente específica para Linux) que não tem nada a ver com o Emacs. Na mesma linha, eu poderia ter usado algo como o Karabiner no OS X para roubar a C-[
sequência antes que o Emacs o entenda, mas isso é desajeitado e caro.
Dado que é Emacs que insiste em traduzir C-[
a ESC
, C-i
a TAB
e, provavelmente, outros que eu gostaria muito de quebrar essas relações e obter sequências de teclas preciosos para trás. Recentemente, corri a toda velocidade para esse problema e culpei o modo silencioso de smartparens inocente .
Uma possível solução que envolveu function-key-map
e key-translation-map
foi discutida aqui, mas infelizmente ela não funciona mais ou não funcionou em primeiro lugar (ou estou fazendo algo errado). Eu acho que estava indo na direção certa.
fonte
C-[
paraESC
". Os dois são a mesma coisa . Da mesma forma,C-i
eTAB
existem nomes diferentes para o mesmo código de controle ASCII.C-[
(pressionarCtrl
e pressionar[
) para o caractere deC-[
controle (também conhecido como personagem), mas não, isso não é obrigatório para alguém que cria um editor. E sim, o Emacs faz isso. e são o mesmo caractere, mas as teclas + e não precisam ser mapeadas para caracteres específicos.ESC
C-[
ESC
Ctrl
[
Esc
Respostas:
Adaptado da minha própria configuração :
Obviamente, isso funcionará apenas na GUI.
edit: Observe que
input-decode-map
é terminal-local, o que significa que modificá-lo não funcionará se você estiver usandoemacsclient
, mas funcionará se estiver usandoemacs
. Corrigi o problema na minha configuração, envolvendo-o em um comando operando em um quadro e adicionando-o aoafter-make-frame-functions
gancho.fonte
<C-i>
e<C-[>
volta ligado aTAB
eESC
no-mapa global como você sugere em sua configuração plana fora trava minha Emacs cada vez que eu bati em: