我从便携式驱动器(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)
答案 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路径...
干杯