以来ediff-files
、Windowsマシンediff-buffers
でapply: Searching for program: no such file or directory, diff
エラーが発生します。
WindowsシステムでEmacsを使用して2つのファイルを比較する方法は?
exec-path
変数上にあるべきだと思います。
以来ediff-files
、Windowsマシンediff-buffers
でapply: Searching for program: no such file or directory, diff
エラーが発生します。
WindowsシステムでEmacsを使用して2つのファイルを比較する方法は?
exec-path
変数上にあるべきだと思います。
回答:
@nannyがコメントで言ったように、解決策はdiffutilsでCygwinをインストールしたことです。これを行う方法は次のとおりです。
diffutils: A GNU collection of diff utilities
パッケージとともにCygwinをインストールします。このパッケージはUtils
、Cygwinインストールのいくつかのステップの1つにあるセクションにあります。
この後には、呼び出すことができますediff-buffers
、ediff-files
そして成功した他の人。これは次のようになります。
楽しい!
これにより時間を節約できる可能性があるため、ここで回答します。cygwin bin
ディレクトリをパス(または他の回答で提案されている他のディレクトリ)に追加したくない場合は、変数を設定して、ediffが使用するプログラムのパスを設定できますediff-diff-program
。たとえば、C:\cygwin\bin
cygwinを使用している場合は、(または実際のパスが何であれ)に設定できます。設定する変数を見つけるのに少し時間がかかりました。仕事をしなかったことをいくつかは以下の通りであった。ediff-custom-diff-program
とdiff-command
。
例えば:
(setq ediff-diff-program "c:/CYGWIN64/bin/diff.exe")
それを行います。
PATH
変数が正しく設定されているはずのCygwinからEmacsを実行した場合にのみ機能すると思います。私が間違っていたら訂正してください。
差分を生成する必要はないが、ファイル間の違いを見つけたいだけの場合は、M-x compare-windows
代わりに使用する方法があります。
2つのファイルが同時に表示されるように2つのファイルを開き、両方のバッファーでポイントを先頭に移動して、を実行しM-x compare-windows
ます。ファイルが異なる最初の場所にポイントを移動します。これは、外部の実行可能ファイルなしで動作するはずです。
コマンドラインインストーラーhttps://scoop.sh/を使用する場合は、プロンプトをdiff
入力scoop install diffutils
して取得できます。