41

我正在尝试在 Windows 的 Emacs 23.2(最新版本)中启动一个cmd终端。

根据手册,我可以通过键入在 Emacs 中进入终端模式(为终端启动一个新缓冲区)M-x term

当我这样做时,系统会提示我:

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

当我输入 时RET,我在 minibuffer 中收到以下错误消息:

Spaning child process: invalid argument

任何想法如何使它工作?

谢谢,

4

6 回答 6

9

以下应该做:

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

  • M-x贝壳

  • M-x贝壳

都有其优点和缺点。所以选择最适合你的。

于 2013-06-28T17:06:46.547 回答
6

我在尝试运行时遇到了同样的错误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 的情况下才有效,但如果你在 Windows 上运行 Emacs,通常至少值得至少安装 Cygwin,因为许多 Emacs 命令可以利用 cygwin 提供的命令行工具(M-x compile在我的例子中)。

于 2013-09-25T13:35:04.250 回答
3

有同样的问题。

我运行 procmon 并发现 Emacs 想要以c:\bin\sh某种形式(sh.exe、、、sh.batsh.cmd)查找。
因为我碰巧想在 android 调试 shell 中使用 term 模式,所以我c:\bin\sh.bat用内容“adb shell”创建了它,它工作得很好,尽管有一些奇怪的输入延迟。

于 2013-06-28T16:55:42.657 回答
3

如果您想在带有 Win32 Emacs 的 Windows 上使用cmd.exetermansi-termCygwin bash,您可以查看这个项目:

假cygpty

在 Win 10 上非常适合我。

于 2016-06-24T15:24:39.357 回答
2

试试M-x cmd-shell吧。我建议使用EmacsW32以获得最佳效果。

于 2010-12-26T21:15:53.133 回答
0

我一直在我的 .bash_profile 中使用它,你应该可以将它设置为你需要的任何东西。注意 - 当我这样做时,我需要重新source ~/.bash_profile获取我所有的别名和东西,我还没有弄清楚。

When I run Emacs by "clicking" a file to start Emacs - I get a Windows CMD line, when I launch from within cygwin - I get a cygwin type shell.

export ESHELL="c:/cygwin64/bin/bash.exe"
于 2021-01-01T14:06:02.487 回答