I have Emacs version 23 on Windows and it seem the ediff
executable is missing?
From where can I download ediff
for Emacs on Windows?
I have Emacs version 23 on Windows and it seem the ediff
executable is missing?
From where can I download ediff
for Emacs on Windows?
You can download diffUtils, extract it, add the path to %PATH% and emacs exec-path in your Emacs init file like that.
(when (string-equal system-type "windows-nt")
(progn
(setq diff-path "your-diff-path")
(setenv "PATH"
(concat diff-path ";"))
(setq exec-path
'(diff-path))))
finally, using M-x diff
to compare what you want.
If you have git for windows installed, then it is enough to add
C:\Program Files\Git\usr\bin\
to your PATH environment variable, because git for windows already ships with a diff executable and installs it in that folder.
When you run ediff
from emacs, it does indeed look for an executable diff
. One way to get it is to install cygwin. You don't have to use Emacs from cygwin to use diff
. Just add c:\cygwin\bin
(use your cygwin install path) to %PATH%
and restart emacs.
Now when you run ediff
, it will find diff.exe
in your %PATH%
.
It's probably a Windows-native diff that you're missing. You really want to have access to a suite of additional Unix-like tools when you run NTEmacs.
Cygwin is probably the most common solution. Many people use the GNUWin32 tools instead ("much faster, though less complete, than the Cygwin ones").
See here for more details: How to best integrate Emacs and Cygwin?
Emacs Wiki: http://www.emacswiki.org/emacs/CygWin
Be aware that as well as NTEmacs, there is a Cygwin-native Emacs as well. So you can either use NTEmacs with Cygwin providing all the additional tools; or you can ignore NTEmacs entirely, and install Cygwin's Emacs package and just use that. NTEmacs is faster, but Cygwin Emacs integrates better with the rest of Cygwin in a few areas.
There isn't an executable for ediff
.
ediff
is a lisp program that runs within emacs. If you would like to run it from the command line, take a look at this documentation.
Ediff uses the
diff
utility so on MS Windows you need to set updiff
first in order to use Ediff normally. If you already have Git installed then you can use the diff executable packaged with it. Or you can use the single diffutils. In order for Emacs to find the executable you can add its path (e.g.C:\Program Files\Git\usr\bin
) to the Windows environment variablePATH
and then restart Emacs. However, if you don't want to restart Emacs all over you can simply add the path to the Emacs variableexec-path
without changingPATH
. But this will litter you init file with extra configurations. Another way to add the path toexec-path
without restarting Emacs or generating extra lines in your init file is like this:PATH
;PATH
(usingM-x setenv PATH
) to that returned byecho %PATH%
from CMD;exec-path
is the same asPATH
. By changingPATH
manually the original value ofexec-path
also changes. So you can revert its value to the original to synchronize withPATH
. From the customizing panel (M-x customize-variable exec-path
) clickRevert...
and choose2 - Erase Customizations
.