Терминал в Emacs в Windows - Сообщение об ошибке: «порождение дочернего процесса; неверный аргумент» - PullRequest
35 голосов
/ 27 декабря 2010

Я пытаюсь запустить терминал cmd в Emacs 23.2 (последняя версия) в Windows.

Согласно Руководству я могу войти в режим терминала (запуск нового буфера для терминала) в Emacs, набрав M-x term.

Когда я делаю это, меня просят:

Run program: path_to-emacs/bin/cmdproxy.exe

Когда я набираю RET, я получаю следующее сообщение об ошибке в минибуфере:

Spaning child process: invalid argument

Есть идеи, как заставить это работать?

Спасибо

Ответы [ 5 ]

8 голосов
/ 28 июня 2013

Следующее должно сделать:

  • M -: (make-comint-in-buffer "cmd" nil "cmd" nil)

  • М-х eshell

  • М-х 1020 * оболочки ** * тысяча двадцать-одна

У всех есть свои плюсы и минусы. Так что выбирайте то, что подходит вам больше всего.

6 голосов
/ 25 сентября 2013

Я получил ту же ошибку при попытке запустить M-x compile. Я добавил следующее в мой .emacs файл, и это устранило проблему:

;; 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")

Очевидно, что это решение будет работать, только если у вас установлен Cygwin, но если вы работаете с Emacs в Windows, обычно стоит хотя бы минимальная установка Cygwin, потому что многие команды Emacs могут использовать инструменты командной строки, доступные в cygwin ( M-x compile в моем случае).

3 голосов
/ 24 июня 2016

Если вы хотите использовать term или ansi-term с cmd.exe или Cygwin bash в Windows с Win32 Emacs, посмотрите этот проект:

fakecygpty

Очень хорошо работает для меня на Win 10.

3 голосов
/ 28 июня 2013

Была такая же проблема.

Я запустил procmon и обнаружил, что Emacs хочет найти c:\bin\sh в некоторой форме (sh.exe, sh.bat, sh.cmd и т. Д.).
Так как мне захотелось использовать термин режим с оболочкой отладки android, я создал c:\bin\sh.bat с содержимым «adb shell», и он работал нормально, хотя и с некоторой странной задержкой ввода.

2 голосов
/ 27 декабря 2010

Попробуйте M-x cmd-shell вместо.Я предлагаю использовать EmacsW32 для достижения наилучших результатов.

...