Cygwin bash 3.2.51에서 W32 GNU Emacs 24.1.50.1을 사용하고 있습니다. 나는이 조합이 매우 성가신 것을 안다. (EmacsWiki과 Cygwin list을 보라). 그러나 지금 해결하고 싶은 문제는 Cygwin에만 국한되지 않습니다. 나는 MinGW에도 문제가있다. 그래서, 문제가 : 이맥스에서W32 Emacs에서 Cygwin 또는 MinGW bash에서 Ctrl-D가 반복되는 EOF를 발행하는 이유는 무엇입니까?
는 M-x shell
를 통해 쉘이 적절 변수 shell-file-name
및 explicit-bash-args
을 설정 한 제공을 시작합니다 (예를 들어, here 참조). 그런 다음 stdin 입력을 기대하는 명령을 내 보냅니다. cat
. cat
을 취소하려면 보통 Ctrl-D 을 입력하고을 입력하면 쉘 프롬프트로 돌아갑니다. W32 emacs에서 (심지어 명시 적으로 M-x comint-send-eof
을 실행해도) cat 명령이 종료되면 및 bash 쉘도 종료됩니다.
$ Use "exit" to leave the shell.
$ Use "exit" to leave the shell.
$ Use "exit" to leave the shell.
$ Use "exit" to leave the shell.
$ Use "exit" to leave the shell.
$ exit
Process shell finished
에서 환경 변수를 IGNOREEOF
에, 말하자면, 5,하지만 하나의 Ctrl-D를 결과를 설정하여 증가 강타의 '탄력성'을 시도하고 이 문제는 쉘이 W32 emacs에서 실행될 때만 발생합니다 - Cygwin tty 창을 통해 Cygwin bash를 실행하고 MinTW bash를 통해 MinTW bash를 실행하십시오.
왜이 문제가 W32 Emacs에서 발생하며 어떻게 종료 할 수 있습니까? bash 쉘을 종료하지 않고 W32 Emacs를 사용할 때 running 하위 명령어 (예 : cat
)?
을 나는 W32 이맥스 처리 적절한 sifnal를 지원하지 않는 제품입니다. ('MX의 COMINT 스톱 subjob'가 오류를 반환 그 이유는) 그러나 W32 이맥스하고있다 * 무언가 *'Mx comint-send-eof'에. 불행히도 논리는 ELISP에서는 표현되지 않지만 아직 조사하지 않은 C 코드에 묻혀 있습니다. - 그래서 이맥스 C 소스 전문가가 내게 더 많은 정보를 줄 수 있기를 바란다. – halloleo