1

ポータブル ドライブ (USB スティック) から Emacs を正常に実行していますが、diff 関数を使用しようとすると問題が発生します。cygwin をインストールしましたが、Windows の環境変数 PATH に diff.exe へのパスを追加すると、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)
4

4 に答える 4

1

どの「パス変数」を設定していますか?Lisp変数を設定したいIIUC exec-path(おそらくPATH環境変数も設定したいのですが、それはEmacsの実行可能ファイルの検索には影響せず、サブプロセスにのみ渡されます)。

于 2012-09-20T14:27:08.350 に答える
0

代わりに diff.exe を Emacs の bin-folder に移動しました。私が見つけたものは他に何も機能していません。今、私の唯一の問題は、血まみれの nodosfilewarning 変数で、cygwin が ms-dos パスに文句を言うのを止めることです...

乾杯

于 2012-10-03T13:58:34.707 に答える
0

変数 'diff-command' に絶対パスを設定して、明示的に diff コマンドを指定してみてください。

(setq diff-command "full/path/to/diff.exe")
于 2012-09-20T15:06:13.673 に答える
0

試してください:
(setenv "PATH" (concat "d:/path/to/bin;" (getenv "PATH")))
パス区切り文字は ; にする必要があることに注意してください。の代わりに : 窓の下

于 2012-09-20T13:29:44.407 に答える