Desde ediff-files
e ediff-buffers
resultar em apply: Searching for program: no such file or directory, diff
erro em máquinas Windows.
Como comparar dois arquivos usando o Emacs em um sistema Windows?
exec-path
variável.
Desde ediff-files
e ediff-buffers
resultar em apply: Searching for program: no such file or directory, diff
erro em máquinas Windows.
Como comparar dois arquivos usando o Emacs em um sistema Windows?
exec-path
variável.
Respostas:
Como @nanny disse nos comentários, a solução está em instalar o Cygwin com diffutils. Aqui está como fazê-lo:
diffutils: A GNU collection of diff utilities
pacote. Este pacote pode ser encontrado na Utils
seção em uma das poucas etapas da instalação do Cygwin.
Após isso, você é capaz de chamar ediff-buffers
, ediff-files
e outros com sucesso. Que se parece com isso:
Apreciar!
Se você possui o git for windows instalado, basta adicionar
C:\Program Files\Git\usr\bin\
para o seu PATH, porque ele já vem com um executável diff e o instala nessa pasta.
Isso pode economizar tempo para as pessoas, então eu responderei aqui. Se você não quiser adicionar o cygwin bin
diretório ao seu caminho (ou qualquer uma das outras sugeridas em outras respostas), você pode definir o caminho dos usos programa ediff definindo a variável ediff-diff-program
. Por exemplo, você pode configurá-lo para C:\cygwin\bin
(ou qualquer que seja o caminho real no seu caso) se estiver usando o cygwin. Levei algum tempo para descobrir qual variável definir. Alguns que NÃO funcionaram foram: ediff-custom-diff-program
e diff-command
.
Por exemplo:
(setq ediff-diff-program "c:/CYGWIN64/bin/diff.exe")
faz isso.
PATH
variável definida corretamente. Corrija-me se eu estiver errado.
Se você não precisa produzir um diff, mas apenas deseja encontrar as diferenças entre os arquivos, uma maneira de fazer isso é usá-lo M-x compare-windows
.
Abra os dois arquivos para que você os veja ao mesmo tempo, mova o ponto para o início nos dois buffers e execute M-x compare-windows
. Ele moverá o ponto para o primeiro local em que os arquivos diferem. Isso deve funcionar sem nenhum executável externo.
Se você usar o instalador da linha de comando https://scoop.sh/, poderá obter diff
digitando scoop install diffutils
seu prompt.