如何从便携式驱动器运行Emacs和Cygwin

如何从便携式驱动器运行Emacs和Cygwin,emacs,cygwin,portable-applications,Emacs,Cygwin,Portable Applications,我成功地从便携式驱动器(U盘)运行Emacs,但当我尝试使用diff函数时,我遇到了麻烦。 我已经安装了cygwin,当我在Windows中将diff.exe的路径添加到环境变量path时,它与Emacs一起工作。问题是,使用这种方法,我必须在我想使用的每台计算机上编辑环境变量。不好 然后,我尝试从site-start.el中将其添加到path变量中。当我从Emacs中检查变量时,添加了路径,但Emacs仍然找不到diff工具 有人知道如何解决这个问题吗 提前谢谢 --马丁 编辑: 我的site

我成功地从便携式驱动器(U盘)运行Emacs,但当我尝试使用diff函数时,我遇到了麻烦。 我已经安装了cygwin,当我在Windows中将diff.exe的路径添加到环境变量path时,它与Emacs一起工作。问题是,使用这种方法,我必须在我想使用的每台计算机上编辑环境变量。不好

然后,我尝试从site-start.el中将其添加到path变量中。当我从Emacs中检查变量时,添加了路径,但Emacs仍然找不到diff工具

有人知道如何解决这个问题吗

提前谢谢

--马丁

编辑: 我的site-lisp.el现在看起来是这样的,到目前为止还没有任何效果(除了将path手动添加到path环境变量):

我的文件夹如下:

[root of usb stick]
\PortableApps\Emacs\bin  (including runemacs.exe)
\PortableApps\CygwinPortable\App\Cygwin\bin   (including diff.exe)
试试看:
(setenv“PATH”(concat“d:/PATH/to/bin;”(getenv“PATH”))
注意路径分隔符应该是;而不是:在windows下尝试:
(setenv“PATH”(concat“d:/PATH/to/bin;”(getenv“PATH”))

注意路径分隔符应该是;而不是:在windows下设置哪个“路径变量”?IIUC您想设置
exec path
Lisp变量(您可能还想设置
path
环境变量,但该变量不会影响Emacs对可执行文件的搜索,它只传递给子进程)。

您要设置哪个“路径变量”?IIUC您想要设置
exec path
Lisp变量(您可能还想要设置
path
环境变量,但该变量不会影响Emacs对可执行文件的搜索,它只传递给子进程).

通过将变量“diff command”设置为完整路径,可以尝试显式指向diff命令

(setq diff-command "full/path/to/diff.exe")

您可以通过将变量“diff command”设置为完整路径,尝试显式指向diff命令

(setq diff-command "full/path/to/diff.exe")

我最终将diff.exe移动到Emacs bin文件夹。我发现别的东西都不管用。现在我唯一的问题是使用血腥的nodosfilewarning变量来阻止cygwin在我的ms dos路径上抱怨


干杯

我最终将diff.exe移到了Emacs bin文件夹中。我发现别的东西都不管用。现在我唯一的问题是使用血腥的nodosfilewarning变量来阻止cygwin在我的ms dos路径上抱怨


干杯

我编辑了我的问题,现在包括我的网站lisp文件的一部分。在windows中编辑
PATH
环境变量时,会找到diff工具,但在站点lisp文件中编辑时不会找到。我编辑了我的问题,现在包括站点lisp文件的部分内容。在windows中编辑
PATH
环境变量时,会找到diff工具,但在站点lisp文件中编辑时不会找到。在代码运行后,能否显示使用
exec PATH
的实际值?在代码运行后,能否显示使用
exec PATH
的实际值?