Problema com o GNU Screen ao usar o Emacs C-x C-s (save-buffer)

30

Quando estou usando o emacs no GNU Screen, se eu chamo a tela do C-x C-s travar e não responde a nenhuma entrada de teclado.

Não consigo reproduzir isso, mas pelo menos uma vez por dia eu tenho que matar minha sessão de tela e reiniciá-la.

Como posso resolver isso?

Obrigado

    
por simao 28.02.2011 / 17:54

2 respostas

48

Ctrl S é o controle de fluxo "Pausar a transmissão" (XOFF) personagem. Geralmente é tratado pelo driver tty, ou neste caso, Screen. Seu oposto é XON, ou Ctrl Q .

Quando você inicia o Emacs, ele normalmente assume a maior parte dos caracteres especiais (não apenas o controle de fluxo, mas também o habitual Ctrl C "Interromper", por exemplo) .

  • Use C-a :flow off para desabilitar o controle de fluxo para esta janela de tela.

    Confirme com C-a :info (procure por -flow no pop-up).

  • Se isso não ajudar, tente stty -ixon ou stty stop undef .

    (Você pode fazer isso de uma janela separada usando stty -f /dev/tty1 ou stty </dev/tty1 .)

No meu sistema (Linux), o Screen faz aviso quando o controle de fluxo está desativado para o tty. Seu sistema operacional pode ter algumas limitações, no entanto.

    
por 28.02.2011 / 18:23
4

Eu tive os mesmos problemas com a tela bloqueada e muito mais quando uso o emacs sob a tela. Por exemplo, C-a no emacs, que leva você ao início da linha, é interceptado pela tela e não funciona.

SOLUÇÃO:

Crie um arquivo .screenrc em seu diretório pessoal com o seguinte:

#Change escape character to C-u 
escape "^uu"                                                                    
#unbind ctrl+s from xoff in order to be able to search in emacs                 
bind s                                                                          
bind ^S                                                                         
#unbind ctrl+x from lockscreen in order to be able to save in emacs             
bind x                                                                          
bind ^X                                                                         

Em seguida, cada vez que você abrir uma nova tela, em vez de usar C-a, será necessário usar C-u para inserir um novo comando de tela. As outras duas mudanças cuidam de mais algumas coisas que eu precisava mudar para poder usar o emacs na tela sem problemas.

    
por 17.10.2012 / 16:45