Problem with GNU Screen when using Emacs C-x C-s (save-buffer)
When I am using emacs under GNU Screen, if I call C-x C-s screen hangs and does not respond to any keyboard input.
I can't reproduce this, but at least one time per day I have to kill my screen session and restart it.
How can I solve this?
Thanks
CtrlS is the "Pause transmission" (XOFF) flow control character. Usually it's handled by the tty driver, or in this case Screen. Its opposite is XON, or CtrlQ.
When you launch Emacs, it normally takes over most of the special characters (not just flow control, but also the usual CtrlC "Interrupt", for example).
-
Use C-a
:flow off
to disable flow-control for this Screen window.Confirm with C-a
:info
(look for-flow
in the pop-up). -
If it doesn't help, try
stty -ixon
orstty stop undef
.(You can do it from a separate window using
stty -f /dev/tty1
orstty </dev/tty1
.)
On my system (Linux), Screen does notice when flow control is disabled for the tty. Your OS might have some limitations, though.
I had the same problems with the locked screen and many more when using emacs under screen. For example, C-a in emacs, that brings you to the beginning of the line, gets intercepted by screen and it doesn't work.
SOLUTION:
Create a file .screenrc in you home directory with the following:
#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
Then each time you open a new screen instead of using C-a you need to use C-u to enter a new screen command. The other two changes take care of a couple more things I needed to change in order to be able to use emacs under screen without problems.