> 텍스트 처리 및 검색 > vimdiff

vimdiff: 파일 차이 비교 및 병합

vimdiff는 강력한 텍스트 에디터인 Vim을 기반으로 하여 두 개 이상의 파일 간의 차이점을 시각적으로 비교하고 병합할 수 있게 해주는 도구입니다. 파일 간의 변경 사항을 쉽게 식별하고, 한 파일의 변경 사항을 다른 파일로 가져오거나 내보낼 수 있어 코드 리뷰, 버전 관리 충돌 해결 등에 매우 유용합니다.

개요

vimdiff는 Vim 에디터의 diff 모드를 활용하여 여러 파일을 나란히 표시하고, 변경된 부분을 자동으로 하이라이트하여 보여줍니다. 사용자는 Vim의 강력한 편집 기능을 그대로 활용하여 차이점을 탐색하고, 필요한 경우 변경 사항을 쉽게 병합할 수 있습니다.

주요 특징

  • 사이드 바이 사이드(Side-by-side) 또는 상하(Top-bottom) 파일 비교
  • 차이점 자동 하이라이트 및 동기화된 스크롤
  • 변경 사항 탐색 및 선택적 병합 기능
  • 최대 8개 파일 동시 비교 지원
  • Vim의 모든 편집 및 탐색 기능 활용 가능

주요 옵션

vimdiff는 기본적으로 'vim -d' 명령어를 호출하므로, Vim의 다양한 명령줄 옵션을 활용할 수 있습니다. 다음은 vimdiff 사용 시 유용한 주요 옵션들입니다.

파일 지정

시작 설정

생성된 명령어:

명령어를 조합해 보세요.

설명:

`vimdiff` 명령어를 실행합니다.

위 옵션들을 조합하여 AI와 함께 가상으로 명령어를 실행해 보세요.

사용 예시

vimdiff를 사용하여 파일을 비교하고 병합하는 다양한 시나리오를 살펴봅니다.

두 파일 비교

vimdiff file_original.txt file_modified.txt

가장 기본적인 사용법으로, 두 파일 간의 차이점을 시각적으로 비교합니다.

세 파일 비교

vimdiff file_version1.txt file_version2.txt file_version3.txt

세 개의 파일을 동시에 비교하여 각 파일 간의 차이점을 한눈에 파악할 수 있습니다.

시작 시 특정 옵션 적용

vimdiff -c 'set diffopt=filler' fileA.txt fileB.txt

vimdiff를 시작할 때 `diffopt` 설정을 통해 빈 줄을 채우는 방식으로 비교를 시작합니다. 이는 파일 간의 줄 수가 크게 다를 때 유용합니다.

읽기 전용으로 파일 비교

vimdiff -R file_old.txt file_new.txt

파일 내용을 변경할 의도 없이 단순히 차이점만 확인하고 싶을 때 사용합니다.

설치

vimdiff는 Vim 에디터 패키지의 일부로 제공됩니다. 대부분의 리눅스 배포판에는 Vim이 기본적으로 설치되어 있거나, 패키지 관리자를 통해 쉽게 설치할 수 있습니다.

Debian/Ubuntu

apt 패키지 관리자를 사용하여 Vim을 설치합니다.

  • 명령어: sudo apt update && sudo apt install vim

CentOS/RHEL/Fedora

yum 또는 dnf 패키지 관리자를 사용하여 Vim을 설치합니다.

  • 명령어 (CentOS/RHEL): sudo yum install vim
  • 명령어 (Fedora): sudo dnf install vim

macOS

Homebrew를 사용하여 Vim을 설치합니다.

  • 명령어: brew install vim

팁 & 주의사항

vimdiff를 더욱 효율적으로 사용하기 위한 팁과 주의사항입니다.

주요 Vimdiff 내부 명령어

vimdiff 세션 내에서 사용할 수 있는 유용한 명령어들입니다.

  • `[c` 또는 `:diffget` (이전 차이점으로 이동)
  • `]c` 또는 `:diffput` (다음 차이점으로 이동)
  • `dp` (diffput): 현재 버퍼의 변경 사항을 다른 버퍼로 적용
  • `do` (diffget): 다른 버퍼의 변경 사항을 현재 버퍼로 가져오기
  • `:diffupdate`: 수동으로 차이점 업데이트 (파일을 편집한 후 유용)
  • `:qa` 또는 `:qall`: 모든 diff 창 닫고 종료

스크롤 동기화

기본적으로 모든 diff 창은 스크롤이 동기화됩니다. `set noscrollbind` 명령어로 특정 창의 스크롤 동기화를 해제할 수 있습니다. 다시 동기화하려면 `set scrollbind`를 사용합니다.

Diff 옵션 설정 (`diffopt`)

`set diffopt=<옵션>` 명령어를 사용하여 diff 표시 방식을 세밀하게 제어할 수 있습니다. 예를 들어, `set diffopt=filler,context:3`은 빈 줄을 채우고 3줄의 컨텍스트를 표시합니다.


동일 카테고리 명령어