Emacs에서 두 파일/버퍼를 비교하는 방법은 Ediff 기능을 이용하는 것입니다.
현재 스크린샷에 보이는 상태는 ediff-buffers 명령어가 실행되어 버퍼(Buffer) 이름을 입력받고 있는 상황입니다.
파일 경로(경로상의 파일)를 직접 비교하고 싶으신 경우와 현재 상황에서 계속 진행하는 방법 두 가지로 나누어 정리해 드립니다.
1. 파일 경로를 직접 입력하여 비교하고 싶은 경우 (추천)
이미 열려있는 버퍼가 아닌, 컴퓨터 디렉토리 내의 두 파일을 경로로 지정해 비교하려면 ediff-files 명령어를 사용해야 합니다.
- 명령어 실행: M-x (Alt + x)를 누르고 ediff-files 입력 후 Enter
- 첫 번째 파일 선택 (File A):
- 미니버퍼에 File A to compare:가 뜨면 비교할 첫 번째 파일의 경로(예: c:/del/emacs/a.txt)를 입력하고 Enter를 누릅니다.
- 두 번째 파일 선택 (File B):
- File B to compare:가 뜨면 두 번째 파일의 경로(예: c:/del/emacs/b.txt)를 입력하고 Enter를 누릅니다.
💡 TIP (경로 입력 팁)
- Windows 환경이라도 Emacs 미니버퍼에서는 역슬래시(\) 대신 슬래시(/)를 사용하는 것이 훨씬 편합니다. (예: c:/del/emacs/a.txt)
- 경로를 입력할 때 Tab 키를 누르면 파일 및 폴더 이름이 자동 완성됩니다.
2. 현재 화면(버퍼 비교)에서 계속 진행하려는 경우
현재 스크린샷은 ediff-buffers 상태입니다. 이미 Emacs 내에 파일들을 열어둔 상태라면 다음과 같이 진행하실 수 있습니다.
- Buffer A 선택:
- 이미지처럼 입력 칸에 c:\del\emacs\a.txt를 적으셨다면, 해당 파일이 Emacs 버퍼로 열려 있는 상태여야 합니다.
- 이미 열려있는 파일이라면 그대로 Enter를 누릅니다.
- Buffer B 선택:
- Buffer B to compare: 프롬프트가 나타나면 비교 대상이 될 두 번째 버퍼 이름을 입력하고 Enter를 누릅니다.
3. Ediff 비교 창 기본 조작법
Ediff가 실행되면 화면이 둘로 분할되고 작은 컨트롤 창(Control Panel)이 하나 더 뜹니다.
- n: 다음 차이점(Next difference)으로 이동
- p: 이전 차이점(Previous difference)으로 이동
- a: A 파일의 내용을 B 파일로 복사
- b: B 파일의 내용을 A 파일로 복사
- q: 비교 종료 (Quit)
Windows 환경에서 Emacs의 Ediff 기능은 내부적으로 외부 diff.exe 유틸리티를 호출하여 차이점을 계산
3가지 방법
해결 방법 1: Git for Windows의 diff 이용하기 (가장 추천)
컴퓨터에 Git for Windows가 이미 설치되어 있다면, Git에 포함된 diff.exe 경로를 Emacs 설정에 추가해 주면 바로 해결됩니다.
- Emacs 설정 파일(ctrl+x>ctrl+f, ~/.emacs 또는 ~/.emacs.d/init.el)에 아래 코드를 추가합니다.
-
코드 스니펫
(setq ediff-diff-program "C:/Program Files/Git/usr/bin/diff.exe") - 설정 파일을 수정한 뒤 Emacs를 재시작하거나, M-x eval-buffer를 실행하여 바로 적용합니다.
해결 방법 2: Diff 유틸리티 별도 설치 및 PATH 등록
Git이 설치되어 있지 않다면 Diff 프로그램을 새로 받아 설치해 주는 방법입니다.
- GnuWin32 DiffUtils 또는 MSYS2 / Cygwin 등을 통해 Windows용 diff.exe를 다운로드합니다.
- 설치 후 diff.exe가 존재하는 경로(예: C:\Program Files (x86)\GnuWin32\bin)를 Windows 시스템 환경 변수(PATH)에 추가합니다.
- Emacs를 재시작한 뒤 ediff-files를 다시 실행합니다.
해결 방법 3: Lisp 기반의 smerge 또는 vc-diff 활용 (임시방편)
만약 외부 프로그램 설치 없이 Emacs 내부 Lisp 구현으로 간단히 비교하고 싶다면, Ediff 대신 diff-buffers 명령어를 사용하실 수도 있습니다.
- 비교할 두 파일을 버퍼로 열어둡니다.
- M-x diff-buffers 실행 후 두 버퍼를 지정합니다.
💡 요약 Windows에서는 Git을 설치한 후 ediff-diff-program 변수에 Git의 diff.exe 경로를 지정하는 것이 가장 신뢰성이 높고 깔끔한 해결책입니다.
'컴퓨터 활용(한글, 오피스 등) > 기타' 카테고리의 다른 글
| 명령어 | make -j$(nproc) (0) | 2026.08.11 |
|---|---|
| 러스트(RUST) | 어트리뷰트, 크레이트 (0) | 2026.08.11 |
| Emacs 구분자 역슬래시(\) (0) | 2026.08.11 |
| 리눅스 | 임시파일 정리 (0) | 2026.08.10 |
| Vue의 컴포넌트란 (0) | 2026.08.10 |