GN⁺: Delta: Git, diff, grep, blame 출력용 구문 강조 페이지 뷰어
(github.com/dandavison)시작하기
- 패키지 이름은 "git-delta"이며, 실행 파일은
delta
임. -
~/.gitconfig
에 다음을 추가하여 설정할 수 있음:[core] pager = delta [interactive] diffFilter = delta --color-only [delta] navigate = true # diff 섹션 간 이동을 위해 n과 N 사용 [merge] conflictstyle = zdiff3
- Delta는 다양한 기능을 제공하며 사용자 정의가 가능함. 사용자 매뉴얼을 참조할 수 있음.
기능
- 언어 구문 강조: bat과 동일한 구문 강조 테마 사용 가능.
- 단어 수준 차이 강조: Levenshtein 편집 추론 알고리듬 사용.
- 나란히 보기: 줄 바꿈 기능 포함.
- 줄 번호 표시.
- 파일 간 이동: 큰 diff에서 n과 N 키로 파일 간 이동 가능.
- 향상된 병합 충돌 표시.
- 향상된 git blame 표시: 구문 강조 및 커밋을 호스팅 제공자 링크로 포맷 가능.
-
grep 출력 구문 강조:
rg
,git grep
,grep
등 지원. -
Git의
--color-moved
기능 지원. -
코드 복사 가능: 기본적으로
-/+
마커 제거. -
diff-highlight
및diff-so-fancy
에뮬레이션 모드. - 커밋 해시를 터미널 하이퍼링크로 포맷 가능.
- 스타일 가능한 박스/라인 장식: 커밋, 파일, 청크 헤더 섹션 강조.
- 스타일 문자열 지원: 20개 이상의 스타일 요소에 대해 전경색, 배경색, 글꼴 속성 사용 가능.
- 전통적인 통합 diff 출력 및 git 출력 처리.
- 밝은/어두운 터미널 배경 자동 감지.
Git, diff, grep 출력을 위한 구문 강조 페이지
- Delta는 코드의 변화를 효율적이고 즐겁게 분석할 수 있도록 도와줌.
- 레이아웃과 스타일을 광범위하게 변경할 수 있으며, 기본 git/diff 출력과 가깝게 유지 가능.
구문 강조 테마
-
bat과 동일한 구문 강조 색상 테마 사용 가능:
-
delta --show-syntax-themes --dark
-
delta --show-syntax-themes --light
-
나란히 보기
- 기본적으로 나란히 보기에는 줄 번호가 활성화되어 있으며, 왼쪽과 오른쪽 패널 모두 구문 강조가 적용됨.
줄 번호
-
delta
설정에서 줄 번호를 활성화할 수 있음.
병합 충돌
- 사용자 매뉴얼을 참조하여 병합 충돌을 처리할 수 있음.
Git blame
- 사용자 매뉴얼을 참조하여 git blame을 향상시킬 수 있음.
Ripgrep, git grep
- 사용자 매뉴얼을 참조하여 ripgrep 및 git grep 출력을 구문 강조할 수 있음.
설치 및 사용
- 사용자 매뉴얼과
delta --help
를 참조할 수 있음.
유지보수자
- @dandavison
- @th1000s
Hacker News 의견
- Delta는 설정 후 잊어버릴 수 있는 도구로, git grep/diff/blame 출력 대신 자주 사용됨. ripgrep과도 호환됨을 알게 됨
- bat도 비슷하게 설정 후 잊어버릴 수 있는 도구로, cat을 bat으로 alias하여 사용 중임
- 기본 git으로도 적당한 수준의 단어 단위 diff를 얻을 수 있음
-
git diff --color-words --word-diff-regex='\w+|.'
명령어 사용
-
- Delta는 유용하지만 긴 줄을 잘라내는 문제가 있었음. 이 문제는
git config --global --replace-all delta.max-line-length 0
설정으로 해결됨- 기본 설정이 아닌 이유는 불분명함
- Delta와 difftastic을 혼합하여 사용 중이며, 특히 difftastic은 tree-sitter AST 구문에 유용함
- Delta는 깔끔하고 매우 빠름
- Delta 사용을 막는 요인은 "시스템" 테마 감지 부족임. 테마가 쉘과 맞지 않으면 읽기 어려움
- 일반
git diff
도구를 색상과 함께 사용했지만, Delta는 너무 복잡함 - Delta와 difftastic을 모두 사용 중이며, 강력히 추천함
- 터미널을 사용하는 사람이라면 꼭 사용해보길 권장함
- bat을 좋아하며, Delta와도 연결됨
- Delta를 사랑하며, 항상 사용하지는 않지만 보통 사용함. 누구에게나 시도해보길 추천함
- 작성자가 magit 통합도 작성한 것으로 보임
- 사용자 피드백(성능 등)에 대한 의견을 구함