如何让eshell在emacs中正常工作?

时间:2012-07-04 08:33:19

标签: windows-7-x64 eshell emacs24

出于某种原因,当我输入我习惯在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的磁盘空间”,而不是找不到该命令错误。

1 个答案:

答案 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重新安装到目录中。