Windows 시스템에서 두 개의 텍스트 파일 비교


11

이후 ediff-files및 ediff-buffers결과에 apply: Searching for program: no such file or directory, diff윈도우 시스템에 오류가 발생했습니다.

Windows 시스템에서 Emacs를 사용하여 두 파일을 비교하는 방법은 무엇입니까?


1
GetGnuWin32를 설치하면 많은 gnu 소프트웨어 (diff지만 alos wget, sed…)에 액세스 할 수 있습니다. 당신은 사랑하는 돌보는 경우에, 당신은 함께 갈 수 gnu.org/software/diffutils
— fredtantini

오류 메시지는 무엇이 잘못되었는지 알려줍니다 diff. 설치 하지 않았습니다 . Cygwin으로 가서 다시 시도하십시오.
— itsjeyd

@itsjeyd Cygwin은 (는) 이미 시스템에 설치되어 있습니다
— Empty_Mind 2012 년

@fredtantini GetGnuWin32를 설치 한 후 같은 오류가 발생합니다
— Empty_Mind

2
당신의 길에 있습니까? 나는 디렉토리가 적어도 exec-path변수 에 있어야한다고 생각합니다 .
— fredtantini

답변:


8

@nanny가 언급했듯이 솔루션은 diffutils와 함께 Cygwin을 설치했습니다. 방법은 다음과 같습니다.

  1. 홈페이지에서 Cygwin 을 다운로드하십시오 .
  2. diffutils: A GNU collection of diff utilities패키지 와 함께 Cygwin을 설치하십시오 . 이 패키지는 UtilsCygwin 설치의 몇 단계 중 하나 에서 섹션에 있습니다. diffutils로 Cygwin 설치
  3. Cygwin 디렉토리를 PATH windows 시스템 변수에 추가하십시오.
    a) 순서를 유지하기 위해 자체 CYGWIN 변수를 추가하여 수행 할 수 있습니다 . CYGWIN 시스템 변수 작성;
    b) 방금 생성 한 변수를 시스템 PATH 변수에 추가합니다.CYGWIN 변수를 PATH 시스템 변수에 추가

이 후에는 호출 할 수 있습니다 ediff-buffers, ediff-files성공적으로 다른 사람. 다음과 같이 보입니다.달리기

즐겨!


3

git for windows가 설치되어 있으면 추가하기에 충분합니다.

C:\Program Files\Git\usr\bin\

이미 diff 실행 파일과 함께 제공되어 해당 폴더에 설치되기 때문에 PATH로 이동하십시오.


2

이렇게하면 사람들이 시간을 절약 할 수 있으므로 여기에 대답하겠습니다. cygwin bin디렉토리를 경로 (또는 다른 답변에서 제안 된 다른 디렉토리) 에 추가하지 않으려면 변수를 설정하여 ediff가 사용하는 프로그램의 경로를 설정할 수 있습니다 ediff-diff-program. 예를 들어 C:\cygwin\bincygwin을 사용하는 경우 (또는 실제 경로가 무엇이든) 설정할 수 있습니다. 설정할 변수를 알아내는 데 시간이 걸렸습니다. 작동하지 않는 일부는 다음 ediff-custom-diff-program과 같습니다 diff-command.

예를 들면 다음과 같습니다.

(setq ediff-diff-program "c:/CYGWIN64/bin/diff.exe")

그렇습니다.


IIRC에서는 일부 라이브러리를로드하지 못하므로 쉘 외부의 cygwin 바이너리를 호출 할 수 없습니다. PATH변수가 올바르게 설정되어 있어야하는 Cygwin에서 Emacs를 실행할 때만 작동한다고 생각 합니다. 틀 렸으면 말해줘.
— DoMiNeLa10

1
@ DoMiNeLa10 Cygwin에 대해 몰라도 작업 표시 줄에서 emacs를 시작하여 Emacs 26.1이 설치된 Windows 10 시스템에서 테스트했습니다 ... 작동합니다. 또한 경로에 추가하는 솔루션은 실제로 문제인지 설명하는 것과 동일한 문제가 있습니다.
— sturgman 2016 년

1
죄송합니다. 내 의견의 마지막 부분이 잘못되었습니다. 경로에 추가하면 라이브러리를 찾을 수 있기 때문에 제안하는 것과 같은 문제가 없습니다. 즉, 답변의 접근 방식을 테스트했으며 제대로 작동합니다.
— sturgman 2016 년

0

diff를 만들 필요는 없지만 파일 간의 차이점을 찾으려면 M-x compare-windows대신 한 가지 방법을 사용하십시오 .

두 파일을 동시에 볼 수 있도록 두 파일을 열고 두 버퍼에서 시작점으로 이동 한 다음 실행하십시오 M-x compare-windows. 파일이 다른 곳으로 포인트를 이동시킵니다. 이것은 외부 실행 파일없이 작동해야합니다.


1
이렇게하면 두 파일에서 첫 번째 문자가 달라지기 전에 포인트가 중지됩니다.
— Empty_Mind

0

명령 행 설치 프로그램 https://scoop.sh/ 를 사용하는 경우 프롬프트 diff에 입력하여 얻을 수 있습니다 scoop install diffutils.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.