3 คะแนน โดย GN⁺ 2024-11-09 | 1 ความคิดเห็น | แชร์ทาง WhatsApp

เริ่มต้นใช้งาน

  • ชื่อแพ็กเกจคือ "git-delta" และไฟล์ปฏิบัติการคือ delta
  • สามารถตั้งค่าได้โดยเพิ่มสิ่งต่อไปนี้ลงใน ~/.gitconfig:
    [core]
    pager = delta
    [interactive]
    diffFilter = delta --color-only
    [delta]
    navigate = true  # ใช้ n และ N เพื่อย้ายระหว่างส่วนต่าง ๆ ของ diff
    [merge]
    conflictstyle = zdiff3
    
  • Delta มีความสามารถหลากหลายและปรับแต่งได้ สามารถดูคู่มือผู้ใช้ได้

ความสามารถ

  • การเน้นไวยากรณ์ของภาษา: ใช้ธีมการเน้นไวยากรณ์เดียวกับ bat ได้
  • การเน้นความต่างระดับคำ: ใช้อัลกอริทึมอนุมานการแก้ไขแบบ Levenshtein
  • มุมมองแบบเคียงข้างกัน: รวมความสามารถตัดบรรทัด
  • แสดงหมายเลขบรรทัด
  • ย้ายระหว่างไฟล์: ใน diff ขนาดใหญ่สามารถใช้ปุ่ม n และ N เพื่อย้ายระหว่างไฟล์ได้
  • การแสดงผล merge conflict ที่ดีขึ้น
  • การแสดงผล git blame ที่ดีขึ้น: รองรับการเน้นไวยากรณ์และสามารถจัดรูปแบบคอมมิตเป็นลิงก์ไปยังผู้ให้บริการโฮสต์ได้
  • การเน้นไวยากรณ์ของเอาต์พุต grep: รองรับ rg, git grep, grep เป็นต้น
  • รองรับความสามารถ --color-moved ของ Git
  • คัดลอกโค้ดได้: เอาเครื่องหมาย -/+ ออกโดยค่าเริ่มต้น
  • โหมดจำลอง diff-highlight และ diff-so-fancy
  • สามารถจัดรูปแบบแฮชคอมมิตเป็นไฮเปอร์ลิงก์ในเทอร์มินัลได้
  • กรอบ/เส้นตกแต่งที่จัดสไตล์ได้: เน้นส่วนหัวของคอมมิต ไฟล์ และชังก์
  • รองรับสตริงสไตล์: ใช้สีพื้นหน้า สีพื้นหลัง และคุณสมบัติฟอนต์ได้กับองค์ประกอบสไตล์มากกว่า 20 รายการ
  • จัดการเอาต์พุต unified diff แบบดั้งเดิมและเอาต์พุตของ git
  • ตรวจจับพื้นหลังเทอร์มินัลแบบสว่าง/มืดโดยอัตโนมัติ

เพจเจอร์แบบเน้นไวยากรณ์สำหรับเอาต์พุต Git, diff และ grep

  • Delta ช่วยให้วิเคราะห์การเปลี่ยนแปลงของโค้ดได้อย่างมีประสิทธิภาพและสนุกยิ่งขึ้น
  • สามารถปรับเปลี่ยนเลย์เอาต์และสไตล์ได้อย่างกว้างขวาง และยังคงให้ใกล้เคียงกับเอาต์พุต git/diff แบบปกติได้

ธีมการเน้นไวยากรณ์

  • ใช้ธีมสีการเน้นไวยากรณ์เดียวกับ bat ได้:
    • delta --show-syntax-themes --dark
    • delta --show-syntax-themes --light

มุมมองแบบเคียงข้างกัน

  • โดยค่าเริ่มต้น มุมมองแบบเคียงข้างกันจะเปิดใช้หมายเลขบรรทัด และทั้งพาเนลซ้ายและขวาต่างก็มีการเน้นไวยากรณ์

หมายเลขบรรทัด

  • สามารถเปิดใช้หมายเลขบรรทัดได้ในการตั้งค่า delta

Merge conflict

  • สามารถดูคู่มือผู้ใช้เพื่อจัดการ merge conflict ได้

Git blame

  • สามารถดูคู่มือผู้ใช้เพื่อปรับปรุง git blame ได้

Ripgrep, git grep

  • สามารถดูคู่มือผู้ใช้เพื่อเน้นไวยากรณ์เอาต์พุตของ ripgrep และ git grep ได้

การติดตั้งและการใช้งาน

  • สามารถดูคู่มือผู้ใช้และ delta --help ได้

ผู้ดูแลโครงการ

  • @dandavison
  • @th1000s

1 ความคิดเห็น

 
GN⁺ 2024-11-09
ความคิดเห็นจาก Hacker News
  • Delta เป็นเครื่องมือประเภทตั้งค่าแล้วลืมได้ ซึ่งมักถูกใช้แทนผลลัพธ์ของ git grep/diff/blame และเพิ่งรู้ว่ายังใช้งานร่วมกับ ripgrep ได้ด้วย
    • bat ก็เป็นเครื่องมือคล้ายกันที่ตั้งค่าแล้วลืมได้ และกำลังใช้งานโดย alias cat เป็น bat
  • แม้ใช้ git แบบปกติก็ยังได้ diff ระดับคำที่ดีพอสมควร
    • ใช้คำสั่ง git diff --color-words --word-diff-regex='\w+|.'
  • Delta มีประโยชน์ แต่เคยมีปัญหาเรื่องตัดบรรทัดยาวทิ้ง ซึ่งแก้ได้ด้วยการตั้งค่า git config --global --replace-all delta.max-line-length 0
    • ไม่ชัดเจนว่าทำไมค่านี้ถึงไม่ได้เป็นค่าเริ่มต้น
  • กำลังใช้ Delta ผสมกับ difftastic โดยเฉพาะ difftastic มีประโยชน์กับไวยากรณ์ AST ของ tree-sitter
    • Delta ดูสะอาดตาและเร็วมาก
  • สิ่งที่ขัดขวางการใช้ Delta คือการตรวจจับธีม "ระบบ" ที่ยังไม่ดีพอ ถ้าธีมไม่เข้ากับเชลล์ก็จะอ่านยาก
  • เคยใช้เครื่องมือ git diff ปกติพร้อมสี แต่รู้สึกว่า Delta ซับซ้อนเกินไป
  • ใช้ทั้ง Delta และ difftastic อยู่ และแนะนำอย่างมาก
    • ถ้าเป็นคนที่ใช้เทอร์มินัล ก็ควรลองใช้ดู
  • ชอบ bat และมันยังเชื่อมกับ Delta ได้ด้วย
  • ชอบ Delta มาก ไม่ได้ใช้ตลอดเวลาแต่ก็ใช้เป็นส่วนใหญ่ และแนะนำให้ทุกคนลองใช้ดู
  • ดูเหมือนว่าผู้เขียนจะทำการรวมเข้ากับ magit ไว้ด้วย
    • อยากฟังความคิดเห็นเกี่ยวกับฟีดแบ็กจากผู้ใช้ เช่น เรื่องประสิทธิภาพ