出于某种原因,当我输入我习惯在Linux上使用的命令时,它的效果非常好,就像它在bash中一样...但是在eshell中,它不起作用。
我已经将问题缩小到一个微不足道的小样本,如下所示:
$ du
c:/Program: command not found
$ which bash
c:/Program Files (x86)/Git/bin/bash.exe
我如何让这个工作? (杜是默认的任何东西......它是在elisp中实现的,我没有在那里做过任何不寻常的更改,也就是说,它是`em-unix.el'中编译的lisp函数)
我会期望“您使用了1.3 GiB的磁盘空间”,而不是找不到该命令错误。
答案 0 :(得分: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's ports添加到PATH unix工具。后者总体上包含较少的包,但它具有更快的find
,例如。你可以混合它们。
或者,也许你可以在没有空格的情况下将Git重新安装到目录中。