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


11

이후 ediff-filesediff-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.