Desde ediff-files
y ediff-buffers
dar como resultado un apply: Searching for program: no such file or directory, diff
error en las máquinas con Windows.
¿Cómo comparar dos archivos usando Emacs en un sistema Windows?
exec-path
variable.
Desde ediff-files
y ediff-buffers
dar como resultado un apply: Searching for program: no such file or directory, diff
error en las máquinas con Windows.
¿Cómo comparar dos archivos usando Emacs en un sistema Windows?
exec-path
variable.
Respuestas:
Como @nanny dijo en los comentarios, la solución es haber instalado Cygwin con diffutils. Aquí está cómo hacerlo:
diffutils: A GNU collection of diff utilities
paquete. Este paquete se puede encontrar en la Utils
sección en uno de los pocos pasos de la instalación de Cygwin.
Después de esto, son capaces de llamar ediff-buffers
, ediff-files
y otros con éxito. Que se parece a esto:
¡Disfrutar!
Si tiene instalado git para Windows, entonces es suficiente agregar
C:\Program Files\Git\usr\bin\
a su RUTA, porque ya viene con un ejecutable diff y lo instala en esa carpeta.
Esto puede ahorrarle tiempo a la gente, así que responderé aquí. Si no desea agregar el bin
directorio cygwin a su ruta (o cualquiera de los otros sugeridos en las otras respuestas), puede establecer la ruta del programa que utiliza ediff configurando la variable ediff-diff-program
. Por ejemplo, podría establecerlo en C:\cygwin\bin
(o cualquiera que sea la ruta real en su caso) si usa cygwin. Me llevó algo de tiempo averiguar qué variable establecer. Algunos que NO funcionaron fueron: ediff-custom-diff-program
y diff-command
.
Por ejemplo:
(setq ediff-diff-program "c:/CYGWIN64/bin/diff.exe")
lo hace.
PATH
variable configurada correctamente. Corrígeme si estoy equivocado.
Si no necesita producir un diff, pero solo quiere encontrar las diferencias entre los archivos, una forma de hacerlo es usarlo M-x compare-windows
.
Abra los dos archivos de modo que los vea a ambos al mismo tiempo, mueva el punto al principio en ambos búferes y ejecute M-x compare-windows
. Se moverá el punto al primer lugar donde los archivos difieren. Esto debería funcionar sin ningún ejecutable externo.
Si usa el instalador de línea de comandos https://scoop.sh/ puede obtenerlo diff
escribiendo scoop install diffutils
su solicitud.