Problema com a tela GNU ao usar o Emacs Cx Cs (save-buffer)

33

Quando estou usando o emacs no GNU Screen, se eu ligar para o Cx Cs, a tela trava e não responde a nenhuma entrada do teclado.

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

Como posso resolver isso?

obrigado

Simão
fonte
Qual Unix? Há muitas diferenças no dispositivo terminal manipulação entre Linux, BSD, Solaris, ...
grawity
1
Na verdade, estou usando o Putty para ssh em uma instância do Ubuntu Server LTS.
simao 28/02

Respostas:

52

CtrlSé o caractere de controle de fluxo "Pausar transmissão" (XOFF) . Geralmente é tratado pelo driver tty ou, neste caso, Screen. Seu oposto é XON, ou CtrlQ.

Quando você inicia o Emacs, ele normalmente assume a maioria dos caracteres especiais (não apenas o controle de fluxo, mas também o CtrlC"Interrupção" usual , por exemplo).

  • Use C-a :flow offpara desativar o controle de fluxo para esta janela da tela.

    Confirme com C-a :info(procure -flowno pop-up).

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

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

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

gravidade
fonte
:flow offtrabalhou. obrigado! de alguma forma eu posso torná-lo permanente?
simao 28/02
1
@ Simão: Veja defflowna página de manual de screen.
grawity
3
Elaboração dos comentários de @simao e @ grawity - Para desativar permanentemente o controle de fluxo (presumo que este seja o resultado desejado para a maioria das pessoas), adicione a linha defflow offao seu ~/.screenrcarquivo ou crie uma no diretório inicial, se ele ainda não existir. Isso foi suficiente para permitir que o meu emacs funcionasse corretamente dentro de uma screenjanela. Essa abordagem deve ser considerada antes de religar as chaves.
Psl
2
Isso resolveu o problema para mim, mas ainda estou para saber por que a tela "de repente" foi colocada nesse modo ... talvez haja algum toque de tecla na tela que permita o controle de fluxo que eu digitei inadvertidamente ... ?? ?
malcook
1
Estamos falando da tela GNU e do GNU Emacs, e eles não descobriram uma maneira de fazer com que ambos funcionassem perfeitamente? ...
yves Baumes
4

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

SOLUÇÃO:

Crie um arquivo .screenrc no diretório inicial 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                                                                         

Cada vez que você abre uma nova tela em vez de usar o Ca, precisa usar o Cu 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 sob tela sem problemas.

Panos
fonte
C-ué uma chave importante para o emacs. Não acho que seja uma boa ideia, mas a ideia de alterar o .screenrc é a melhor alternativa.
precisa saber é o seguinte