问题
I'm trying to start a cmd terminal in Emacs 23.2 (latest version) in Windows.
According to the Manual, I can enter in terminal mode (starting a new buffer for the terminal) in Emacs by typing M-x term
.
When I do this, I get prompted for:
Run program: path_to-emacs/bin/cmdproxy.exe
When I type RET
, I get the following error message in the minibuffer:
Spaning child process: invalid argument
Any ideas how to make it work?
Thanks,
回答1:
The following should do:
M-:
(make-comint-in-buffer "cmd" nil "cmd" nil)
M-xeshell
M-xshell
All have both their pros and cons. So choose what suits you best.
回答2:
I got the same error while trying to run M-x compile
. I added the following to my .emacs
file and it fixed the problem:
;; Make sure that the bash executable can be found
(setq explicit-shell-file-name "C:/cygwin/bin/bash.exe")
(setq shell-file-name explicit-shell-file-name)
(add-to-list 'exec-path "C:/cygwin/bin")
Obviously this solution will only work if you have Cygwin installed, but if you are running Emacs on Windows it is usually worth at least a minimal install of Cygwin because many Emacs commands can leverage the command-line tools made available by cygwin (M-x compile
in my case).
回答3:
Had the same problem.
I ran procmon and discovered that Emacs wants to find c:\bin\sh
in some form (sh.exe
, sh.bat
, sh.cmd
, etc).
Since I happened to want to use term mode with the android debugging shell, I created c:\bin\sh.bat
with contents "adb shell", and it worked fine, albeit with some weird input lag.
回答4:
If you want to use term
or ansi-term
with cmd.exe or Cygwin bash on Windows with Win32 Emacs you can, take a look at this project:
fakecygpty
Works very nicely for me on Win 10.
回答5:
Try M-x cmd-shell
instead. I suggest using EmacsW32 for the best results.
来源:https://stackoverflow.com/questions/4535432/terminal-in-emacs-in-windows-error-message-spawning-child-process-invalid-a