Windows中Emacs中的终端 - 错误消息:“生成子进程;无效参数”

时间:2010-12-26 21:10:11

标签: windows emacs term

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

根据Manual,我可以通过输入M-x term在Emacs中进入终端模式(为终端启动新的缓冲区)。

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

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

当我输入RET时,我在迷你缓冲区中收到以下错误消息:

Spaning child process: invalid argument

任何想法如何使其发挥作用?

谢谢,

6 个答案:

答案 0 :(得分:8)

以下内容应该:

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

  • M-X ESHELL

  • M-X

所有人都有自己的利弊。所以选择最适合你的。

答案 1 :(得分: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

答案 2 :(得分:3)

有同样的问题。

我跑了procmon并发现Emacs希望以某种形式找到c:\bin\sh sh.exesh.batsh.cmd等。) 因为我碰巧想在android调试shell中使用term模式,所以我用内容“adb shell”创建了c:\bin\sh.bat,它工作得很好,虽然有一些奇怪的输入延迟。

答案 3 :(得分:3)

如果您想在Windows上使用termansi-term与cmd.exe或Cygwin bash一起使用Win32 Emacs,请查看此项目:

fakecygpty

在Win 10上为我工作非常好。

答案 4 :(得分:2)

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

答案 5 :(得分:0)

我一直在我的 .bash_profile 中使用它,您应该能够将其设置为您需要的任何内容。请注意 - 当我执行此操作时,我需要重新 source ~/.bash_profile 以获取我所有的别名和内容,但我仍然没有弄清楚。

当我通过“单击”一个文件来启动 Emacs 来运行 Emacs 时 - 我得到一个 Windows CMD 行,当我从 cygwin 中启动时 - 我得到一个 cygwin 类型的 shell。

export ESHELL="c:/cygwin64/bin/bash.exe"
相关问题