Problema con la pantalla GNU cuando se usa Emacs Cx Cs (save-buffer)


33

Cuando uso emacs en la pantalla GNU, si llamo a Cx Cs, la pantalla se cuelga y no responde a ninguna entrada de teclado.

No puedo reproducir esto, pero al menos una vez al día tengo que cerrar mi sesión de pantalla y reiniciarla.

¿Como puedo resolver esto?

Gracias


Cual Unix? Hay muchas diferencias en el manejo de dispositivos terminales entre Linux, BSD, Solaris, ...
grawity

1
De hecho, estoy usando Putty para ssh en una instancia de Ubuntu Server LTS.
simao

Respuestas:


52

CtrlSes el carácter de control de flujo de "Pausa de transmisión" (XOFF) . Por lo general, es manejado por el controlador tty, o en este caso, la pantalla. Su opuesto es XON, o CtrlQ.

Cuando inicia Emacs, normalmente se hace cargo de la mayoría de los caracteres especiales (no solo el control de flujo, sino también la CtrlC"interrupción" habitual , por ejemplo).

  • Use C-a :flow offpara desactivar el control de flujo para esta ventana de pantalla.

    Confirmar con C-a :info(buscar -flowen la ventana emergente).

  • Si no ayuda, intente stty -ixono stty stop undef.

    (Puede hacerlo desde una ventana separada usando stty -f /dev/tty1o stty </dev/tty1.)

En mi sistema (Linux), la pantalla hace el aviso cuando el control de flujo está deshabilitada para el TTY. Sin embargo, su sistema operativo puede tener algunas limitaciones.


:flow offtrabajó. ¡Gracias! ¿De alguna manera puedo hacerlo permanente?
simao

1
@simao: Ver defflowen la página del manual de screen.
Grawity

3
Desarrollando los comentarios de @simao y @grawity: para deshabilitar permanentemente el control de flujo (supongo que este es el resultado deseado para la mayoría de las personas), agregue la línea defflow offa su ~/.screenrcarchivo o cree una en su directorio de inicio si aún no existe. Esto fue suficiente para permitir que mis emacs funcionen correctamente dentro de una screenventana. Este enfoque debe considerarse antes de volver a vincular las claves.
pscl

2
Esto resolvió el problema para mí, pero aún no he aprendido por qué la pantalla "de repente" se puso en este modo ... tal vez hay una pulsación de tecla de pantalla que permite el control de flujo que escribí inadvertidamente ... ?? ?
malcook

1
Estamos hablando de la pantalla GNU y GNU Emacs, y no encontraron una manera de hacer que ambos funcionen a la perfección. ...
yves Baumes

4

Tuve los mismos problemas con la pantalla bloqueada y muchos más al usar emacs debajo de la pantalla. Por ejemplo, Ca en emacs, que lo lleva al comienzo de la línea, es interceptado por la pantalla y no funciona.

SOLUCIÓN:

Cree un archivo .screenrc en su directorio de inicio con lo siguiente:

#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                                                                         

Luego, cada vez que abra una nueva pantalla en lugar de usar Ca, debe usar Cu para ingresar un nuevo comando de pantalla. Los otros dos cambios se encargan de un par de cosas más que necesitaba cambiar para poder usar emacs bajo la pantalla sin problemas.


C-ues una clave importante para emacs. No creo que sea una buena idea, pero la idea de cambiar .screenrc es la mejor alternativa.
vfclists
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.