3 điểm bởi GN⁺ 2024-11-09 | 1 bình luận | Chia sẻ qua WhatsApp

Bắt đầu

  • Tên gói là "git-delta", và tệp thực thi là delta.
  • Có thể cấu hình bằng cách thêm nội dung sau vào ~/.gitconfig:
    [core]
    pager = delta
    [interactive]
    diffFilter = delta --color-only
    [delta]
    navigate = true  # dùng n và N để di chuyển giữa các phần diff
    [merge]
    conflictstyle = zdiff3
    
  • Delta cung cấp nhiều tính năng và có thể tùy biến. Có thể tham khảo sổ tay hướng dẫn người dùng.

Tính năng

  • Tô sáng cú pháp ngôn ngữ: có thể dùng cùng các chủ đề tô sáng cú pháp như bat.
  • Tô sáng khác biệt ở cấp độ từ: sử dụng thuật toán suy luận chỉnh sửa Levenshtein.
  • Chế độ xem song song: bao gồm tính năng xuống dòng.
  • Hiển thị số dòng.
  • Di chuyển giữa các tệp: trong diff lớn có thể dùng phím n và N để chuyển giữa các tệp.
  • Hiển thị xung đột hợp nhất được cải thiện.
  • Hiển thị git blame được cải thiện: có thể tô sáng cú pháp và định dạng commit thành liên kết tới nhà cung cấp dịch vụ lưu trữ.
  • Tô sáng cú pháp cho đầu ra grep: hỗ trợ rg, git grep, grep, v.v.
  • Hỗ trợ tính năng --color-moved của Git.
  • Có thể sao chép mã: mặc định loại bỏ các dấu -/+.
  • Chế độ mô phỏng diff-highlightdiff-so-fancy.
  • Có thể định dạng hash commit thành siêu liên kết trong terminal.
  • Trang trí hộp/đường kẻ có thể tạo kiểu: làm nổi bật các phần tiêu đề commit, tệp và chunk.
  • Hỗ trợ chuỗi kiểu dáng: có thể dùng màu tiền cảnh, màu nền và thuộc tính phông chữ cho hơn 20 thành phần kiểu dáng.
  • Xử lý đầu ra diff hợp nhất truyền thống và đầu ra git.
  • Tự động phát hiện nền terminal sáng/tối.

Bộ phân trang có tô sáng cú pháp cho đầu ra Git, diff, grep

  • Delta giúp phân tích thay đổi trong mã một cách hiệu quả và thú vị.
  • Có thể thay đổi bố cục và kiểu dáng một cách rộng rãi, đồng thời vẫn giữ gần với đầu ra git/diff mặc định.

Chủ đề tô sáng cú pháp

  • Có thể dùng các chủ đề màu tô sáng cú pháp giống như bat:
    • delta --show-syntax-themes --dark
    • delta --show-syntax-themes --light

Chế độ xem song song

  • Theo mặc định, chế độ xem song song bật số dòng và áp dụng tô sáng cú pháp cho cả bảng bên trái lẫn bên phải.

Số dòng

  • Có thể bật số dòng trong cấu hình delta.

Xung đột hợp nhất

  • Có thể tham khảo sổ tay hướng dẫn người dùng để xử lý xung đột hợp nhất.

Git blame

  • Có thể tham khảo sổ tay hướng dẫn người dùng để cải thiện git blame.

Ripgrep, git grep

  • Có thể tham khảo sổ tay hướng dẫn người dùng để tô sáng cú pháp cho đầu ra ripgrep và git grep.

Cài đặt và sử dụng

  • Có thể tham khảo sổ tay hướng dẫn người dùng và delta --help.

Người duy trì

  • @dandavison
  • @th1000s

1 bình luận

 
GN⁺ 2024-11-09
Ý kiến trên Hacker News
  • Delta là kiểu công cụ có thể thiết lập xong rồi quên đi, và thường được dùng thay cho đầu ra của git grep/diff/blame. Giờ mới biết nó cũng tương thích với ripgrep
    • bat cũng là một công cụ tương tự có thể cấu hình một lần rồi quên, tôi đang alias cat thành bat để dùng
  • Ngay cả git mặc định cũng có thể cho ra word diff ở mức khá ổn
    • Dùng lệnh git diff --color-words --word-diff-regex='\w+|.'
  • Delta hữu ích, nhưng từng có vấn đề cắt bớt các dòng dài. Có thể khắc phục bằng cấu hình git config --global --replace-all delta.max-line-length 0
    • Không rõ vì sao đây lại không phải là thiết lập mặc định
  • Tôi đang dùng kết hợp Delta và difftastic, đặc biệt difftastic rất hữu ích với cú pháp AST của tree-sitter
    • Delta gọn gàng và rất nhanh
  • Yếu tố khiến tôi chưa dùng Delta là việc thiếu phát hiện theme "system". Nếu theme không khớp với shell thì rất khó đọc
  • Tôi đã dùng công cụ git diff thông thường kèm màu, nhưng Delta thì quá phức tạp
  • Tôi dùng cả Delta lẫn difftastic và rất khuyến nghị
    • Nếu bạn làm việc trong terminal thì nhất định nên thử
  • Tôi thích bat, và nó cũng kết nối tốt với Delta
  • Tôi rất thích Delta; không phải lúc nào cũng dùng nhưng đa phần là có. Tôi khuyên bất kỳ ai cũng nên thử
  • Có vẻ tác giả cũng đã viết tích hợp cho magit
    • Đang muốn xin ý kiến về phản hồi từ người dùng (như hiệu năng, v.v.)