Так как ediff-files
и ediff-buffers
привести к apply: Searching for program: no such file or directory, diff
ошибке на Windows-машинах.
Как сравнить два файла с помощью Emacs в системе Windows?
exec-path
переменной.
Так как ediff-files
и ediff-buffers
привести к apply: Searching for program: no such file or directory, diff
ошибке на Windows-машинах.
Как сравнить два файла с помощью Emacs в системе Windows?
exec-path
переменной.
Ответы:
Как сказал @nanny в комментариях, решение установило Cygwin с diffutils. Вот как это сделать:
diffutils: A GNU collection of diff utilities
пакетом. Этот пакет можно найти в Utils
разделе одного из нескольких этапов установки Cygwin.
После этого вы можете позвонить ediff-buffers
, ediff-files
и другие успешно. Который выглядит примерно так:
Наслаждайтесь!
Если у вас установлен git для Windows, то достаточно добавить
C:\Program Files\Git\usr\bin\
в ваш путь, потому что он уже поставляется с исполняемым файлом diff и устанавливает его в эту папку.
Это может сэкономить людям время, поэтому я отвечу здесь. Если вы не хотите добавлять bin
каталог cygwin к своему пути (или любой другой из предложенных в других ответах), вы можете установить путь, используемый программой, которую использует ediff, установив переменную ediff-diff-program
. Например, вы можете установить его C:\cygwin\bin
(или любой другой фактический путь в вашем случае), если используете cygwin. Мне потребовалось некоторое время, чтобы выяснить, какую переменную установить. Некоторые, которые НЕ работали, были: ediff-custom-diff-program
и diff-command
.
Например:
(setq ediff-diff-program "c:/CYGWIN64/bin/diff.exe")
Является ли.
PATH
правильно установлена переменная. Поправьте меня если я ошибаюсь.
Если вам не нужно создавать diff, а просто хотите найти различия между файлами, один из способов сделать это - использовать M-x compare-windows
вместо этого.
Откройте два файла так, чтобы вы видели их оба одновременно, переместите точку в начало в обоих буферах и запустите M-x compare-windows
. Это переместит точку в первое место, где файлы различаются. Это должно работать без какого-либо внешнего исполняемого файла.
Если вы используете установщик командной строки https://scoop.sh/, вы можете получить diff
его, набрав scoop install diffutils
в командной строке.