I am using the Cygwin version of Emacs. Everything is fine, except for some quirks when using the Emacs shell (Mx shell). The Emacs shell uses the Cygwin bash. The biggest problem right now is not to send SIGINT to the shell to abort the current command. For example, I often use ssh to log in to a remote host, then the "tail -f" file. I can't break out of the tail team. When using the Emacs shell under Unix / Linux, pressing Cc Cc (comint-interrupt-subjob) will send SIGINT to the shell (bash), and the tail command (or something else) will be aborted as expected.
For a quick and easy example, run "Mx shell", then "sleep 30" and try aborting the sleep command. You can exit (Cg) and do other things in Emacs, but the Emacs shell hangs for the duration of the sleep command.
I have a feeling that this has something to do with the difference in signal transmission / processing in Cygwin, as opposed to signals in Unix. Since the Cygwin bash shell responds appropriately to signals, I have to assume that there is some way to get Emacs to send SIGINT to the bash shell as it understands. Any ideas?
By the way, I used Emacs eshell, term and ansi-term, but I prefer the shell for a number of reasons. I also use mintty and GNU Screen, and you have no complaints, but using Emacs shell and handling terminal sessions such as text files is great.
source
share