diffnav: دیدن diff گیت با درخت فایلها، درست مثل GitHub
خلاصهٔ کاملتر
diffnav یه pager برای git diff هست، یعنی برنامهای که خروجی طولانی diff رو توی ترمینال قابل مرور میکنه. سازندهش dlvhdr، که gh-dash رو هم ساخته، میگه این ابزار بر پایه delta (یه ابزار محبوب برای diffهای رنگی و خوانا) ساخته شده ولی یه چیز مهم بهش اضافه کرده: یه درخت فایل کنار صفحه، شبیه همونی که توی PRهای GitHub میبینی.
استفادهش سادهست. خروجی git diff یا حتی gh pr diff رو با پایپ میدی بهش و یه رابط دوپنلی تحویل میگیری. میتونی با دستور git config --global pager.diff diffnav اونو pager پیشفرض گیت هم بکنی تا هر بار diff گرفتی خودش باز بشه. با کلیدهایی مثل n و p بین فایلها میری، با t دنبال فایل میگردی، با s بین نمای کنار هم و یکپارچه جابهجا میشی و با o فایل رو توی ادیتورت باز میکنی.
یه قابلیت کاربردیش watch mode هست، یعنی diffnav هر چند ثانیه یه بار دستور diff رو دوباره اجرا میکنه و صفحه رو تازه میکنه. پیشفرضش git diff هر ۲ ثانیهست، ولی با --watch-cmd و --watch-interval میتونی مثلاً تغییرات stage شده رو هر ۵ ثانیه ببینی. اینطوری وقتی داری کد مینویسی، تغییراتت رو زنده جلوی چشمت داری.
تنظیمات توی یه فایل config.yml نگه داشته میشه. میتونی هدر و فوتر رو مخفی کنی، عرض درخت فایل رو عوض کنی (پیشفرض ۲۶)، سبک آیکونها رو انتخاب کنی و تم بذاری که پیشفرضش tokyo_night هست. برای اینکه آیکونها درست نشون داده بشن باید یه Nerd Font نصب کرده باشی، وگرنه میتونی سبک unicode یا ascii رو انتخاب کنی.
نکات کلیدی:
- با brew install diffnav یا از سورس با go install نصب میشه
- رابطش با Bubble Tea ساخته شده و برای نمایش هر فایل از delta استفاده میکنه
- حالت watch بهصورت پیشفرض هر ۲ ثانیه git diff رو دوباره اجرا میکنه
- فلگهای -s و -u نمای کنار هم یا یکپارچه رو اجباری میکنن
- شش سبک آیکون داره، از Nerd Font کامل تا ASCII ساده




