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

时间:2012-09-20 13:23:31

标签: emacs cygwin portable-applications

我从便携式驱动器(USB记忆棒)成功运行Emacs但是当我尝试使用diff功能时遇到了麻烦。 我已经安装了cygwin,当我将diff.exe的路径添加到Windows中的环境变量PATH时,它可以与Emacs一起使用。问题是,通过这种方法,我必须在我想要使用的每台计算机上编辑环境变量。不好。

然后我尝试将它添加到我的site-start.el中的路径变量中。当我从Emacs中检查变量但是Emacs仍然无法找到diff工具时添加路径。

有没有人有任何想法如何解决这个问题?

提前致谢

- 马丁

修改 我的site-lisp.el现在看起来像这样,到目前为止没有任何工作(除了手动将路径添加到PATH环境变量):

;
; Get drive letter
;
(defvar usb-drive-letter (substring data-directory 0 2)) 

;
; Add cygwin-folder to path and exec-path
;
(defvar cygwin-folder (concat usb-drive-letter "/PortableApps/CygwinPortable/App/Cygwin/bin/"))
(setenv "PATH" (concat (getenv "PATH") ";" cygwin-folder))
(setq exec-path (append exec-path cygwin-folder))

我的文件夹如下:

[root of usb stick]
\PortableApps\Emacs\bin  (including runemacs.exe)
\PortableApps\CygwinPortable\App\Cygwin\bin   (including diff.exe)

3 个答案:

答案 0 :(得分:0)

尝试:
(setenv“PATH”(concat“d:/ path / to / bin;”(getenv“PATH”))) 注意路径分隔符应该是;而不是:在Windows下

答案 1 :(得分:0)

您可以通过使用完整路径设置变量'diff-command'来尝试明确指向diff命令。

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

答案 2 :(得分:0)

我最终将diff.exe移到了Emacs bin文件夹中。我发现的其他任何东西都没有用。现在我唯一的问题是血腥的nodosfilewarning变量来阻止cygwin抱怨我的ms-dos路径...

干杯