Ответ 1
Следующее должно сделать:
-
M-:
(make-comint-in-buffer "cmd" nil "cmd" nil)
-
M-x eshell
-
M-x оболочки
У всех есть свои плюсы и минусы. Поэтому выберите, что вам лучше всего подходит.
Я пытаюсь запустить терминал cmd в Emacs 23.2 (последняя версия) в Windows.
В соответствии с Manual я могу войти в режим терминала (начиная новый буфер для терминала) в Emacs, набрав M-x term
.
Когда я это сделаю, мне будет предложено:
Run program: path_to-emacs/bin/cmdproxy.exe
Когда я печатаю RET
, я получаю следующее сообщение об ошибке в минибуфере:
Spaning child process: invalid argument
Любые идеи, как заставить его работать?
Спасибо,
Следующее должно сделать:
M-: (make-comint-in-buffer "cmd" nil "cmd" nil)
M-x eshell
M-x оболочки
У всех есть свои плюсы и минусы. Поэтому выберите, что вам лучше всего подходит.
Я получил ту же ошибку при попытке запустить 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
в моем случае).
Имела ту же проблему.
Я запускал procmon и обнаружил, что Emacs хочет найти c:\bin\sh
в некоторой форме (sh.exe
, sh.bat
, sh.cmd
и т.д.).
Так как мне захотелось использовать режим term с оболочкой отладки android, я создал c:\bin\sh.bat
с содержимым "adb shell", и он работал нормально, хотя и с некоторой странной задержкой ввода.
Если вы хотите использовать term
или ansi-term
с cmd.exe или Cygwin bash в Windows с помощью Win32 Emacs, вы можете взглянуть на этот проект:
Хорошо работает для меня на Win 10.
Попробуйте M-x cmd-shell
. Я предлагаю использовать EmacsW32
для получения наилучших результатов.