Ponieważ ediff-files
i ediff-buffers
powodują apply: Searching for program: no such file or directory, diff
błąd na komputerach z systemem Windows.
Jak porównać dwa pliki za pomocą Emacsa w systemie Windows?
exec-path
zmiennej.
Ponieważ ediff-files
i ediff-buffers
powodują apply: Searching for program: no such file or directory, diff
błąd na komputerach z systemem Windows.
Jak porównać dwa pliki za pomocą Emacsa w systemie Windows?
exec-path
zmiennej.
Odpowiedzi:
Jak powiedział @nanny w komentarzach, rozwiązaniem jest zainstalowanie Cygwin z diffutils. Oto jak to zrobić:
diffutils: A GNU collection of diff utilities
pakietem. Ten pakiet można znaleźć w Utils
sekcji w jednym z kilku kroków instalacji Cygwin.
Po to jesteś w stanie zadzwonić ediff-buffers
, ediff-files
a inni pomyślnie. Który wygląda mniej więcej tak:
Cieszyć się!
Jeśli masz zainstalowany git dla systemu Windows, wystarczy dodać
C:\Program Files\Git\usr\bin\
do ŚCIEŻKI, ponieważ jest już dostarczany z plikiem wykonywalnym diff i instaluje go w tym folderze.
Może to zaoszczędzić ludziom trochę czasu, więc odpowiem tutaj. Jeśli nie chcesz dodawać bin
katalogu cygwin do swojej ścieżki (lub innych sugerowanych w innych odpowiedziach), możesz ustawić ścieżkę używaną przez program ediff, ustawiając zmienną ediff-diff-program
. Na przykład możesz ustawić go na C:\cygwin\bin
(lub jakąkolwiek rzeczywistą ścieżkę w twoim przypadku), jeśli używasz cygwin. Trochę czasu zajęło mi ustalenie, którą zmienną ustawić. Niektóre, które NIE zadziałały to: ediff-custom-diff-program
i diff-command
.
Na przykład:
(setq ediff-diff-program "c:/CYGWIN64/bin/diff.exe")
czy to.
PATH
poprawnie ustawioną zmienną. Popraw mnie, jeśli się mylę.
Jeśli nie musisz tworzyć pliku różnicowego, a po prostu chcesz znaleźć różnice między plikami, jednym ze sposobów jest użycie M-x compare-windows
zamiast tego.
Otwórz dwa pliki, aby zobaczyć oba jednocześnie, przesuń punkt na początek w obu buforach i uruchom M-x compare-windows
. Przeniesie punkt do pierwszego miejsca, w którym pliki się różnią. Powinno to działać bez zewnętrznego pliku wykonywalnego.
Jeśli używasz instalatora wiersza polecenia https://scoop.sh/ , możesz uzyskać diff
wpisując scoop install diffutils
swój monit.