Terminais transmitem caracteres¹, não chaves. Quando você pressiona uma tecla ou combinação de teclas como Ctrl + Alt + Enter , o terminal deve traduzi-lo para uma sequência de caractere ou caractere. Não há caracteres suficientes para representar todas as chaves, então a maioria dessas combinações são transmitidas como seqüências de escape: uma sequência de caracteres que começa com o caractere de escape.
Não há um padrão universal para as seqüências de escape, embora existam algumas convenções comuns. Por exemplo, a tecla Alt + chave envia freqüentemente o caractere de escape seguido pelo caractere ou seqüência de escape para a tecla ; mas não existe um padrão para o que Ctrl + Enter envia. Alguns terminais são configuráveis, alguns têm sequências de escape codificadas.
Veja também Problemas com atalhos de teclado ao usar terminal para uma explicação mais detalhada, bem como possíveis soluções com o Xterm.
Se você não conseguir usar Ctrl + Alt + Introduzir para ser transmitido através do seu terminal favorito, você pode escolher uma ligação de teclas diferente . Descobrir o comando Ctrl + Alt + Enter executado pressionando C-h c C-M-return
quando estiver usando o Matlab em um GUI Emacs. Em seguida, digite C-h w matlab-foo RET
em que matlab-foo
é o nome do comando; isso lhe dirá a que chave (s) matlab-foo
está vinculada. Se não houver uma ligação que você possa digitar convenientemente, adicione uma ao seu arquivo init, com algo como
(defun my-eval-after-load-matlab ()
(define-key matlab-mode-map [f9] 'matlab-foo))
(eval-after-load "matlab" '(my-eval-after-load-matlab))
Para "matlab"
, substitua o nome do arquivo Lisp que define o comando matlab-foo
. Para descobrir o que é isso, digite C-h k C-M-return
; isto diz-lhe algo como "C-M-return executa o comando matlab-foo, que é uma função Lisp compilada interativa em 'matlab.el'". O nome do arquivo Lisp é o último bit na linha, menos a parte .el
. Para matlab-mode-map
, substitua o nome do mapa de chaves; esse é geralmente o nome do modo principal ( C-h v major-mode RET
, "Seu valor é matlab-mode") mais -map
no final.
Alternativamente, você realmente precisa usar o Screen? Se você estiver usando apenas para que o Emacs sobreviva à desconexão, isso não é realmente necessário. Inicie o Emacs como um daemon ( emacs --daemon
) e conecte-se a ele remotamente por meio do SSH executando emacsclient -c
para abrir um novo quadro da GUI. Você pode abrir e fechar quadros da GUI em vários monitores, e o Emacs continuará funcionando mesmo se os monitores entrarem e saírem.
¹ Na verdade, bytes, mas esse bit é irrelevante aqui.