如何让 eshell 在 emacs 中正常工作



出于某种原因,当我在 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 磁盘空间"的内容,而不是该命令未找到错误。

它不使用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的端口添加到PATH中Unix工具。后者总体上包含较少的软件包,但它具有 更快的find ,例如。你可以混合它们。

或者,也许你可以侥幸将 Git 重新安装到没有空格的目录中。

相关内容

  • 没有找到相关文章

最新更新