0

出于某种原因,当我在 linux 上输入我习惯的命令时,它可以完美地工作,就像在 bash 中一样......但是在 eshell 中,它不起作用。

我已将问题缩小到一个微不足道的小样本,如下所示:

$ du
c:/Program: command not found
$ which bash
c:/Program Files (x86)/Git/bin/bash.exe

我如何让这个工作?(du默认是什么...它是在elisp中实现的,我没有在那里做任何不寻常的更改,也就是说,它是`em-unix.el'中的编译lisp函数)

我预计会出现“您使用了 1.3 GiB 的磁盘空间”这样的内容,而不是该命令未找到错误。

4

1 回答 1

1

它不使用bash.exe,但它可以使用du.exe, 如果存在。

在我的系统上:

c: gutov $ which bash.exe
which: no bash.exe in ...
c: gutov $ which du.exe
h:/Apps/System/gnuwin32/bin/du.exe

从您的错误消息中,我可以看出它调用了一些命令并失败,因为它没有正确引用可执行文件的路径(其中包含空格)。也许你应该这样做M-x report-emacs-bug

总的来说,我推荐:

1)卸载 Git 并重新安装它,当询问您的 PATH 环境时选择第二个选项(“从 Windows 命令提示符运行 Git”)。这将从 PATH 中删除与它一起打包的 unix 工具。

2)安装在某个没有空格的目录中,并从GnuWin32项目或Eli Zaretski 的 ports添加到 PATH unix 工具。后者总体上包含更少的包,但它的速度要快得多find,例如。你可以混合它们。

或者,也许您只需将 Git 重新安装到没有空格的目录中即可。

于 2012-07-15T18:52:37.140 回答