Como fazer o xterm enviar a tecla Alt para o emacs como Meta?


9

Vejo que essa pergunta foi feita várias vezes . As soluções fornecidas aqui não parecem se aplicar à minha configuração. Aqui está a minha história:

Eu uso o ubuntu 12.0.04 LTS, com xmonad (não acima do gnome), e uso o xterm para o meu trabalho. Eu preferiria usar o xterm em vez de um terminal diferente ou a própria janela do emacs. Ao usar o emacs -nw, vejo que o Alt não é reconhecido. Eu verifiquei usando xev que Alt está realmente sendo gerado. Além disso, se eu estiver usando o rxvt, vejo que o Alt está sendo reconhecido pelo emacs -nw. Estou usando o modo maligno (como um usuário vim de longa data e um emacs newbee) e eu realmente preferiria não ter minha chave de escape recuperada como alt (que foi a solução fornecida em outro thread). O que devo fazer? (Se ajudar, Alt-x na janela do xterm sem o emacs executando gera "ø" ou se eu executar emacs -nw -Q).


Se não me engano, Alt está sendo lido como M.
Braiam

Eu não entendi, você quer dizer M, e não Meta, certo? Por que você diz isso?
Rahul

Tecla Emacs Meta. Você não pode pressionar Mx?
Braiam

Oh, esse é o meu problema. Eu esperava que o Alt-x gere Mx (como no modo gráfico), mas isso não ocorre no xterm para mim. Em vez disso, gera (ø)
rahul 03/04

Respostas:


13

Como visto no Arch Wiki , você precisa fazer o Xterm para enviar a chave de escape correta para o programa:

Se você usar a Alttecla para atalhos de teclado, será necessário no seu arquivo de recursos:

XTerm*metaSendsEscape: true

Então, faça:

echo 'XTerm*metaSendsEscape: true' >> ~/.Xresources

E reinicie sua sessão do Xterm.


Obrigado, isso funcionou. Portanto, se Alt envia escape agora, como o xterm lida com Escape? (Escape funciona também, eu estou pedindo para o meu entendimento.)
rahul

@rahul eu não disse "Esc" escape, mas escapou pressione a tecla "^ M"
Braiam

4
em vez de reiniciar a sua sessão você também pode executarxrdb -merge ~/.Xresources
Christian Fritz


1

Existe uma alternativa interessante para gerenciar seus arquivos .Xdefaults/ .Xresources, fornecendo a cadeia de recursos diretamente como xtermopção de linha de comando:

xterm -xrm 'xterm*VT100.metaSendsEscape: true'

Isso é útil, por exemplo, se você tiver um alias personalizado de x-terminal-emulatorqualquer maneira.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.